I am trying to add a new variable to a tibble that is the population of each of the areas I am studying using the mutate function. For this I think I need to use the ifelse function (I have tried the case_when function) as the zones are identified by their acronyms; and I am trying to assign to each one of their acronyms the population.
So this is what I been doing:
hosp%>% mutate(poblacion =ifelse(hosp$provincia_iso=="A", 1879888, ifelse(hosp$provincia_iso=="VI", 333940,
ifelse(hosp$provincia_iso=="AB", 388270, ifelse(hosp$provincia_iso=="AL", 727945, ifelse(hosp$provincia_iso=="O", 1018784,
ifelse(hosp$provincia_iso=="AV", 157664, ifelse((hosp$provincia_iso=="BA"), 672137, ifelse((hosp$provincia_iso=="PM"), 672137,
ifelse((hosp$provincia_iso=="B"), 5743402, ifelse((hosp$provincia_iso=="BU"), 357650,
ifelse((hosp$provincia_iso=="CC"), 391850,ifelse((hosp$provincia_iso=="CA"), 1244049,
ifelse((hosp$provincia_iso=="S"), 582905,ifelse((hosp$provincia_iso=="CS"), 585590,
ifelse((hosp$provincia_iso=="CR"), 495045,ifelse((hosp$provincia_iso=="CO"), 781451,
ifelse((hosp$provincia_iso=="CU"), 196139, ifelse((hosp$provincia_iso=="GI"), 781788,
ifelse((hosp$provincia_iso=="GR"), 919168, ifelse((hosp$provincia_iso=="GU"), 261995,
ifelse((hosp$provincia_iso=="SS"), 727121, ifelse((hosp$provincia_iso=="H"), 524278,
ifelse((hosp$provincia_iso=="HU"), 222687, ifelse((hosp$provincia_iso=="J"), 631381,
ifelse((hosp$provincia_iso=="C"), 1121815, ifelse((hosp$provincia_iso=="LO"), 319914,
ifelse((hosp$provincia_iso=="GC"), 131065, ifelse((hosp$provincia_iso=="LE"), 456439,
ifelse((hosp$provincia_iso=="L"), 438517, ifelse((hosp$provincia_iso=="LU"), 327946,
ifelse((hosp$provincia_iso=="M"), 6779888, ifelse((hosp$provincia_iso=="MA"), 1685920,
ifelse((hosp$provincia_iso=="MU"), 1511251, ifelse((hosp$provincia_iso=="NA"), 661197,
ifelse((hosp$provincia_iso=="OR"), 306650, ifelse((hosp$provincia_iso=="P"), 160321,
ifelse((hosp$provincia_iso=="PO"), 945408, ifelse((hosp$provincia_iso=="SA"), 329245,
ifelse((hosp$provincia_iso=="TF"), 1044887, ifelse((hosp$provincia_iso=="SG"), 153478,
ifelse((hosp$provincia_iso=="SE"), 1950219, ifelse((hosp$provincia_iso=="SO"), 88894,
ifelse((hosp$provincia_iso=="T"), 816772, ifelse((hosp$provincia_iso=="TE"), 134176,
ifelse((hosp$provincia_iso=="TO"), 703772, ifelse((hosp$provincia_iso=="V"), 2591875,
ifelse((hosp$provincia_iso=="VA"), 520649, ifelse((hosp$provincia_iso=="BI"), 1159443,
ifelse((hosp$provincia_iso=="ZA"), 170588, ifelse((hosp$provincia_iso=="Z"), 972528,
ifelse((hosp$provincia_iso=="CE"), 84202, ifelse((hosp$provincia_iso=="ML"), 87076, NA)))))))))))))
But maybe it will be easier for you to help me with a simpler example:
province <- c("A", "B", "C", "D")
cases<-c(135,120,160, 100)
df <- data.frame(province, cases)
df%>% mutate(poblacion =ifelse(df$ province=="A", 1879888, ifelse( df$ province=="C", 333940,
ifelse( df$ province=="B", 388270, ifelse(df$ province=="D", 727945, NA))))))))))))))))))))))
The problem is that while this works, when I run the upper part of the question script I get some "stackoverflow error" for line 24 and I only get values for the last 2 provinces of the script.
Also I would like to ask if there is a simpler way to do this.