我有一个包含 11 列和 100000 行(例如)的大数据集,其中我的值为 1、2、3、4。其中 4 是缺失值。某些行完全丢失。即所有 11 列中有 4 个。例如
"4" "4" "4" "4" "4" "4" "4" "4" "4" "4" "4"
现在我需要的是只删除那些完全丢失的行。简单来说,我想保留缺失值小于 11 的行。我使用了 na.omit,但它在我的情况下不起作用。
提前致谢。
最佳答案
也许你最好的选择是利用 R 的习语来处理缺失,或者 NA
值。编码后 NA
您可以使用的值 complete.cases
轻松实现您的目标。
创建一些带有缺失值的样本数据(即值为 4):
set.seed(123)
m <- matrix(sample(1:4, 30, prob=c(0.3, 0.3, 0.3, 0.1), replace=TRUE), ncol=6)
m[4, ] <- rep(4, 6)
将所有等于 4 的值替换为
NA
:m[m==4] <- NA
m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 NA 2 2 2
[2,] 2 3 3 1 2 3
[3,] 3 2 2 1 2 3
[4,] NA NA NA NA NA NA
[5,] NA 3 1 NA 2 1
现在您可以使用各种处理
NA
的函数值。例如,complete.cases
只会返回,你猜对了,完整的案例:m[complete.cases(m), ]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 3 1 2 3
[2,] 3 2 2 1 2 3
如需更多信息,请参阅
?complete.cases
或 ?na.fail
在 stats
包裹。
关于r - 如何删除R中仅包含缺失值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7185201/