SPSS 值标签作为 R 中表的列名?

SPSS value labels as column names for tables in R?

我正在使用 haven 读取 .sav 文件:

library(haven)
data <- read_spss("file.sav", user_na = FALSE)

然后尝试显示 table 中的变量之一:

table(data$region)

哪个returns:

  1   2   3   4   5   6   7   8   9  10  11  12 
 85 208  43 171  30  40  95 310 133  29  77  36 

这在技术上是正确的,但是 - 在 SPSS 中,顶行中的数值具有与之关联的标签(在本例中为区域名称)。如果我只是 运行 data$region,它会在输出的末尾显示数字及其相关标签,但是有没有办法让这些字符串标签出现在第一行 table而不是他们的数字对应物?

提前感谢您的帮助!

方法是将变量转换为因子,使用向量的 "labels" 属性作为因子水平。 sjlabelled 包包含一个一步完成此操作的函数:

data$region <- sjlabelled::as_label(data$region)

虽然 table 命令仍然可以处理结果数据,但布局可能有点混乱。 forcats 包有一个函数,可以漂亮地打印频率 tables 的因素:

data$region %>% forcats::fct_count()