【发布时间】:2016-09-26 14:53:25
【问题描述】:
想象一个像下面这样的小数据集,由三个变量组成:
v1 <- c(0, 1, NA, 1, NA, 0)
v2 <- c(0, 0, NA, 1, NA, NA)
v3 <- c(1, NA, 0, 0, NA, 0)
df <- data.frame(v1, v2, v3)
df
v1 v2 v3
1 0 0 1
2 1 0 NA
3 NA NA 0
4 1 1 0
5 NA NA NA
6 0 NA 0
可以如下使用 is.na 命令来计算至少有一个缺失值的行数 - R 将返回 4:
sum(is.na(df$v1) | is.na(df$v2) | is.na(df$v3))
或缺少所有三个值的行数 - R 将返回 1:
sum(is.na(df$v1) & is.na(df$v2) & is.na(df$v3))
此时有两个问题:
(1) 如何计算缺少“正好一个”或“正好两个”值的行数?
(2) 如果我要在一个大数据集上做上面的,如何将计算的范围限制在v1、v2和v3(即不用创建一个子集)?
我尝试了 is.na、nrow 和 df 的变体,但无法让它们中的任何一个工作。
谢谢!
【问题讨论】:
标签: r