我正在分析来自R的Limesurvey调查问卷中的一些数据。其中一个调查问题询问人们的原籍国,并使用下拉列表和国家列表。我为此创建了一个标签集,其中包含3个字母的ISO国家/地区代码作为Limesurvey答案代码,国家/地区名称作为标签:
将我的Limesurvey数据导出到R时,代码和标签都会保存到R语法文件中。代码保存为因子的“级别”,标签当然用作标签(为清晰起见缩写):
$query = "SELECT count(*) AS total FROM table_name";
mysql_select_db('database_name');
$result = mysql_query($query);
$values = mysql_fetch_assoc($result);
$num_rows = $values['total'];
echo $num_rows;
但是,我无法弄清楚如何在R中访问这个3个字母的ISO代码?获得ISO代码会很棒,因此我可以将其提供给rworldmap 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"
函数并在地图上绘制数据。 (我知道我也可以将国家名称传递给该函数,但这更容易出错。)
如果我检查变量,我得到这个:
joinCountryData2Map()
同样,> data$Q3_Nationality
[1] Guyana
249 Levels: Afghanistan Åland Islands Albania Algeria ... Zimbabwe
只是给了我:
levels()
没有“AFG”,“ALA”,“ALB”ISO答案代码的迹象。
尝试将其转换为字符,再次为我提供完整标签:
levels(data$Q3_Nationality)
[1] "Afghanistan"
[2] "Åland Islands"
[3] "Albania"
[4] "Algeria"
[5] "American Samoa"
如果有人能告诉我如何访问它们会很棒!
答案 0 :(得分:0)
我会以这种方式提出一个肮脏的解决方案,您只需编辑R语法文件并将级别设置为标签。 但是,如果您希望稍后使用国家/地区的全名进行打印或绘图,则必须对其进行转换。 您可以在代码中使用代码语法文件,也可以在副本上进行打印。