r-用查找表和sjlabeled::set_Label标记变量



我需要用sjlabeled::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, 10, replace = TRUE),
q3 = sample(1:5, 10, replace = TRUE),
q4 = sample(1:5, 10, replace = TRUE),
q5 = sample(1:5, 10, 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" 

相关内容

  • 没有找到相关文章

最新更新