R 如何处理具有不同标签的NA值
我在处理调查数据集中的NA值时遇到问题R 如何处理具有不同标签的NA值,r,label,na,R,Label,Na,我在处理调查数据集中的NA值时遇到问题 library(haven) x <- labelled( c(1:3, tagged_na("a", "c", "z"), 4:1), c("Agreement" = 1, "Disagreement" = 4, "First" = tagged_na("c"), "Refused" = tagged_na("a"), "Not home" = tagged_na("z")) ) 图书馆(避风港) x检查这个:
library(haven)
x <- labelled(
c(1:3, tagged_na("a", "c", "z"), 4:1),
c("Agreement" = 1, "Disagreement" = 4,
"First" = tagged_na("c"),
"Refused" = tagged_na("a"),
"Not home" = tagged_na("z"))
)
图书馆(避风港)
x检查这个:
base::table(haven::as_factor(x, levels = "labels"))
输出
Agreement Disagreement First
2 1 1
Refused Not home
1 1
我们可以使用get_values
函数从sjlabeled
包中提取其中包含NA
的值,并使用table
获取它们的计数
table(grep('NA', sjlabelled::get_values(x), value = TRUE))
# NA(a) NA(c) NA(z)
# 1 1 1
你的预期产出是多少is.na(x)
为您提供了na
值的位置。我希望看到这样的内容:na(a):1na(c):1na(z):1。@MZ2017是我的答案,可以满足您的需要吗?谢谢!你用过包裹吗?我试图运行您的代码,但我得到了“因子(x,levs,labels=labs,ordered=ordered)中的错误:无效的“标签”;长度5应该是1或2”@MZ2017它是安全的。你正在使用的那个。更新我的答案以添加包。请现在检查。我不知道为什么,我仍然收到一条错误消息。也许这和我的R工作室环境有关。但是我可以使用as_factor(x)命令将标签更改为factor。谢谢
table(grep('NA', sjlabelled::get_values(x), value = TRUE))
# NA(a) NA(c) NA(z)
# 1 1 1