r - 使用查找表和 sjlabelled::set_label 标记变量

标签 r spss labeling

我需要用 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, 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" 

关于r - 使用查找表和 sjlabelled::set_label 标记变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66884769/

相关文章:

spss - 如何使用SPSS按组获取有关调查表项目的描述性统计信息?

matlab - GNU Octave Matlab : Plot tick labeling

r - 合并并从R中的两个不同数据表中获取最大值

R:按年龄计算风险时间

r - R 中的基本词干提取代替根词干提取

class - 删除附加有foreign/Hmisc SPSS导入功能的变量标签

macos - 尝试连接到远程服务器失败inet : Local Computer:0

c++ - 如何使用 C++ 读取存储在 opencv 中 findcontour 函数输出中的数据

r - 按顺序计算 R 中一列中的相同组

r - 如何使用 dplyr 删除所有列中带有 NA 的行?