【问题标题】:stripping value labels from imported SPSS `.sav` data从导入的 SPSS `.sav` 数据中剥离值标签
【发布时间】:2021-08-28 22:42:38
【问题描述】:

haven 文档中,我看到了zap_labels() 如何从变量中去除值标签的示例。在文档中的每种情况下,示例中使用的变量都是使用 R 赋值运算符 (<-) 创建的,以直接创建向量(例如下图,通过:https://haven.tidyverse.org/reference/zap_labels.html)。

但是,我正在尝试对使用 Haven 的 read_sav() 导入的数据使用 zap_labels(),但它似乎没有像我预期的那样工作。


代码:(我在 Windows 10 上):

我像这样使用haven 导入.sav 文件:

June18 <- read_sav("C:/ ... filename.sav", 
  user_na = FALSE) %>% 
  as_factor() 

我正在探索的变量是V1Q1_W35

属性:

attributes(June18$V1Q1_W35)

输出:

$级别 [1] “非常公平” “有点公平” “不太公平” “根本不公平” “拒绝”


在原始 .sav 文件中,V1Q1_W35 的值标签映射如下所示:


所以,根据我的理解,如果我从zap_labels()V1Q1_W35,我应该会在数据中看到原始数字,例如123499

但是,当我执行以下操作时,我仍然会看到值标签。

attributes(zap_labels(June18$V1Q1_W35))

输出:

$级别 [1] “非常公平” “有点公平” “不太公平” “根本不公平” “拒绝”


所以我的问题是:在这种情况下(试图查看不同的级别),我应该怎么做才能看到数据中的原始数字而不是它们映射到的值标签?

【问题讨论】:

    标签: r-haven


    【解决方案1】:

    这是因为在导入数据时,您会将其转换为一个因子,在这种情况下,它只是保留标签并去掉数字。

    因此,您可以在应用zap_labels 命令之前在读取数据时不使用as_factor 命令,或者您可以在导入期间使用as.numeric 直接将变量转换为数字。当然,您也可以选择仅将其应用于 tjis 有意义的列子集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      相关资源
      最近更新 更多