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

时间:2019-11-04 18:26:36

标签: r spss

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

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

然后尝试在表中显示变量之一:

table(data$region)

哪个返回:

  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,它会在输出的末尾显示数字及其相关的标签,但是有没有办法使这些字符串标签出现在表的第一行而不是它们的数字对应行? >

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

执行此操作的方法是使用向量的“标签”属性作为因子级别,将变量强制转换为因子。 sjlabelled程序包包含一个可一步完成此操作的函数:

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

尽管table命令仍将对结果数据起作用,但布局可能会有些混乱。 forcats软件包具有一个功能,可以漂亮地打印出频率表中的因子:

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