【问题标题】:Accessing level values (answer codes) in R from Limesurvey export [duplicate]从 Limesurvey 导出访问 R 中的级别值(答案代码)
【发布时间】:2015-08-19 16:04:27
【问题描述】:

我正在分析 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 代码会很棒,因此我可以将其输入 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 r-factor limesurvey


    【解决方案1】:

    我会以这种方式提出一个肮脏的解决方案,您只需编辑您的 R 语法文件并将级别也设置为标签。 但是,如果您以后要使用国家/地区的全名进行打印或绘图,则必须对其进行转换。 您可以在您的代码中使用代码语法文件,也可以在副本上打印。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2023-03-06
      • 2015-09-13
      • 2023-01-26
      • 2021-11-24
      • 2015-05-22
      相关资源
      最近更新 更多