r - 根据缺失变量的数量对观测值进行计数

标签 r

我想根据缺少的变量数量来计算数据框的行数。因此,例如在下面的数据框中,我希望代码返回列表:

3, 5, 1, 1, 0

因为有 3 行没有缺失变量,5 行有 1 个缺失变量,1 行有 2 个缺失变量,1 行有 3 个缺失变量,0 行有 4 个缺失变量:

   v1 v2 v3 v4
1   1  1  1  1
2  NA NA  1  1
3   1  1 NA  1
4   1  1  1  1
5  NA  1  1  1
6  NA  1  1  1
7   1  1  1 NA
8  NA  1  1  1
9   1  1  1  1
10  1 NA NA NA

以下是可以在 R 中加载的示例数据:

dt <- structure(list(v1 = c(1, NA, 1, 1, NA, NA, 1, NA, 1, 1), v2 = c(1, NA, 1, 1, 1, 1, 1, 1, 1, NA), v3 = c(1, 1, NA, 1, 1, 1, 1, 1, 1, NA), v4 = c(1, 1, 1, 1, 1, 1, NA, 1, 1, NA)), .Names = c("v1", "v2", "v3", "v4"), row.names = c(NA, -10L), class = "data.frame")

我已经可以通过逐行循环数据帧并增加缺失变量数量的计数器来做到这一点,但在大型数据帧上速度非常慢,所以我希望有一种巧妙的方法来做到这一点?

最佳答案

table(rowSums(is.na(dt)))
#0 1 2 3 
#3 5 1 1 

如果您确实需要最后 0 个(四个 NA):

tabulate(factor(rowSums(is.na(dt))), nbins = ncol(dt)+1)
#[1] 3 5 1 1 0

关于r - 根据缺失变量的数量对观测值进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316002/

相关文章:

r - 计算 R 中频率的百分比

从评估函数返回 system.time

r - 安全地将 data.table 转回 data.frame

r - 评估一个符号 Ryacas 表达式

r - ggplot : legend for emojis in plot

r - 如何定义4列的指标?

R将EXIF数据写入JPEG文件

r - formatC() 在 R 中由 round(x) 生成后将 0 视为负数?

r - 寻找 dplyr 函数来有条件地应用过滤器

windows - R 程序运行时保持计算机清醒