I'm analysing some data from a Limesurvey questionnaire in R. One of the survey questions asks people for their country of origin and uses a dropdown with a list of countries. I've created a labelset for this with the 3-letter ISO country code as the Limesurvey answer code and the country name as the label:
When exporting my Limesurvey data to R, both the codes and labels are saved into the R syntax file. The codes are saved as the 'level' for the factor, and the label is of course used as the label (abbreviated for clarity):
data[, 7] <- as.character(data[, 7])
attributes(data)$variable.labels[7] <- "Which country are you from?"
data[, 7] <- factor(data[, 7], levels=c("AFG","ALA","ALB", ..., "ZMB","ZWE"),labels=c("Afghanistan","Åland Islands","Albania", ..., "Zambia","Zimbabwe"))
names(data)[7] <- "Q3_Nationality"
However, I cannot figure out how to access this 3-letter ISO code in R? It would be great to get the ISO code, so I can feed that into the rworldmap joinCountryData2Map()
function and plot data on a map. (I know that I can also just pass the country name to that function, but that's more error prone.)
If I examine the variable, I get this:
> data$Q3_Nationality
[1] Guyana
249 Levels: Afghanistan Åland Islands Albania Algeria ... Zimbabwe
Similarly, levels()
just gives me:
levels(data$Q3_Nationality)
[1] "Afghanistan"
[2] "Åland Islands"
[3] "Albania"
[4] "Algeria"
[5] "American Samoa"
No sign of the "AFG", "ALA", "ALB" ISO answer codes.
Trying to convert it to a character, gives me the full label again:
as.character(levels(data$Q3_Nationality))
[1] "Afghanistan"
[2] "Åland Islands"
[3] "Albania"
[4] "Algeria"
[5] "American Samoa"
It would be great if anyone could tell me how to access these!