[英]How to deal with NA values with different labels
我在处理调查数据集中的 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"))
)
这是 output
<Labelled double>
[1] 1 2 3 NA(a) NA(c) NA(z) 4 3 2 1
Labels:
value label
1 Agreement
4 Disagreement
NA(c) First
NA(a) Refused
NA(z) Not home
我想要的是单独计算有多少 NA(c)、NA(a) 和 NA(z),而不是作为一个整体。 我想根据 NA(c)、NA(a) 和 NA(z) 对数据进行子集化。 我怎样才能做到这一点。
谢谢!
检查这个:
base::table(haven::as_factor(x, levels = "labels"))
output
Agreement Disagreement First
2 1 1
Refused Not home
1 1
我们可以使用来自sjlabelled
package 的get_values
function,提取其中有NA
的值并使用table
来获取它们的计数。
table(grep('NA', sjlabelled::get_values(x), value = TRUE))
# NA(a) NA(c) NA(z)
# 1 1 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.