我正在分析 R 中 Limesurvey 问卷中的一些数据。其中一个调查问题询问人们他们的原籍国,并使用带有国家列表的下拉列表。我为此创建了一个标签集,其中 3 个字母的 ISO 国家代码作为 Limesurvey 答案代码,国家名称作为标签:
将我的 Limesurvey 数据导出到 R 时,代码和标签都保存到 R 语法文件中。代码保存为因子的“级别”,标签当然用作标签(为清楚起见而缩写):
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"
但是,我无法弄清楚如何在 R 中访问这个 3 个字母的 ISO 代码?获得 ISO 代码会很棒,因此我可以将其输入 rworldmapjoinCountryData2Map()
函数并在地图上绘制数据。(我知道我也可以将国家名称传递给该函数,但这更容易出错。)
如果我检查变量,我会得到:
> data$Q3_Nationality
[1] Guyana
249 Levels: Afghanistan Åland Islands Albania Algeria ... Zimbabwe
同样,levels()
只是给我:
levels(data$Q3_Nationality)
[1] "Afghanistan"
[2] "Åland Islands"
[3] "Albania"
[4] "Algeria"
[5] "American Samoa"
没有“AFG”、“ALA”、“ALB”ISO 答案代码的迹象。
尝试将其转换为字符,再次给我完整的标签:
as.character(levels(data$Q3_Nationality))
[1] "Afghanistan"
[2] "Åland Islands"
[3] "Albania"
[4] "Algeria"
[5] "American Samoa"
如果有人能告诉我如何访问这些,那就太好了!