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()
我正在使用 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()