从Limesurvey导出中访问R中的级别值(答案代码)
问题描述:
我正在分析R中Limesurvey问卷的一些数据。其中一项调查问题要求人们提供其原籍国,并在国家/地区列表中使用下拉菜单。我创建了一个labelset这与3个字母的ISO国家代码为Limesurvey答案代码和国家名称作为标签:从Limesurvey导出中访问R中的级别值(答案代码)
当导出我的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"
不过,我不知道如何访问此3个字母的ISO代码在R?获得ISO代码非常好,所以我可以将它填充到地图上的rworldmap joinCountryData2Map()
函数和绘图数据中。 (我知道,我也可以只通过国名该功能,但更容易出错。)
如果我检查的变量,我得到这个:
> 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"
这将是巨大的,如果有人能告诉我如何访问这些!
答
我会以这种方式提出一个肮脏的解决方案,您只需编辑您的R语法文件并将其设置为标签。 但是,如果您希望稍后使用国家/地区的全名进行打印或绘图,则必须先对其进行转换。 您可以在代码中使用代码语法文件,也可以在副本上进行打印。
查看可能的重复:http://stackoverflow.com/questions/5869539/confusion-between-factor-levels-and-factor-labels – BumbleBee