如何解决使用查找表和 sjlabelled::set_label 标记变量
我需要用 sjlabelled::set_label 标记很多变量。这是一个可重现的示例以及已经有效的示例:
library(data.table)
library(sjlabelled)
lookup <- data.table(id = paste0("q",1:5),question = paste0("qtext",1:5))
data <- data.table(q1 = sample(1:5,10,replace = TRUE),q2 = sample(1:5,q3 = sample(1:5,q4 = sample(1:5,q5 = sample(1:5,replace = TRUE))
data[,q1 := set_label(data[,q1],lookup[id == "q1",question])]
get_label(data$q1)
所以如果我用它们的 id 调用它们,我可以标记特定的变量,但是如果我想“循环”所有变量,我正在努力完成任务。尝试使用 for 循环但没有成功。
目标是能够将数据表(或数据框)导出为 SPSS 文件。如果它适用于其他软件包,我也会很高兴。
解决方法
您可以直接在数据帧上使用 set_label
。
library(sjlabelled)
data <- set_label(data,lookup$question[match(names(data),lookup$id)])
get_label(data)
# q1 q2 q3 q4 q5
#"qtext1" "qtext2" "qtext3" "qtext4" "qtext5"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。