r - 为多个标记变量设置缺失值

标签 r tidyverse r-haven

如何为数据框中的多个标记向量设置缺失值。我正在使用来自 spss 的调查数据集。我正在处理大约 20 个具有相同缺失值的不同变量。所以想找到一种方法来使用 lapply() 来完成这项工作,但我做不到。

我实际上可以通过 as.numeric() 然后 recode() 使用 base R 来做到这一点,但我对避风港和标记类的可能性很感兴趣,所以我想在 Hadley 的 tidyverse 中找到一种方法来完成这一切

大致感兴趣的变量看起来像这样。如果这是一个基本问题,我很抱歉,但我发现与避风港和标签包相关的帮助文档非常无用。

library(haven)
library(labelled)
v1<-labelled(c(1,2,2,2,5,6), c(agree=1, disagree=2, dk=5, refused=6))
v2<-labelled(c(1,2,2,2,5,6), c(agree=1, disagree=2, dk=5, refused=6))
v3<-data.frame(v1=v1, v2=v2)
lapply(v3, val_labels)
lapply(v3, function(x) set_na_values(x, c(5,6)))

最佳答案

不太确定这是否是您要查找的内容:

v1 <- labelled(c(1, 2, 2, 2, 5, 6), c(agree = 1, disagree = 2, dk = 5, refused = 6))
v2 <- labelled(c(1, 2, 2, 2, 5, 6), c(agree = 1, disagree = 2, dk = 5, refused = 6))
v3 <- data_frame(v1 = v1, v2 = v2)

lapply(names(v3), FUN = function(x) {
  na_values(v3[[x]]) <<- 5:6
})

lapply(v3, na_values)

最后一行返回
$v1
[1] 5 6

$v2
[1] 5 6

验证缺失值 :
is.na(v3$v1)
[1] FALSE FALSE FALSE FALSE  TRUE  TRUE

关于r - 为多个标记变量设置缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43529972/

相关文章:

r - 如何过滤R中具有特定值的参与者?

r - 使用 docker 托管 R 管道工 API

r - dplyr:从 group_by 变量中删除 NA

r - 测试列表的所有元素(列表本身)是否相等

r - 如何为具有百分比的多个变量创建堆叠条形图

R根据先前列的比较生成值

r - 使用行索引号来计算值

r - 使用haven导入Stata数据后访问变量标签的便捷方法

r - Haven::read_sav 显示值标签而不是代码

r - 无法使用 Haven 读取 R 中的 SAS 传输文件