【问题标题】:SPSS value labels as column names for tables in R?SPSS值标签作为R中表的列名?
【发布时间】:2019-11-04 18:26:36
【问题描述】:

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

提前感谢您的帮助!

【问题讨论】:

  • 您可以检查attributes(data$region)attr(data$region, "label") 您的示例不可重现。请使用dput 显示示例数据

标签: r spss


【解决方案1】:

这样做的方法是将变量转换为因子,使用向量的“标签”属性作为因子水平。 sjlabelled 包包含一个功能,可以一步完成:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    相关资源
    最近更新 更多