一列中的连续NAS [英] Consecutive NAs in a column
本文介绍了一列中的连续NAS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要删除一列中连续NA
个以上的行。
[,1] [,2]
[1,] 1 1
[2,] NA 1
[3,] 2 4
[4,] NA 3
[6,] 1 4
[7,] NA 8
[8,] NA 5
[9,] NA 6
所以我会有这个数据
[,1] [,2]
[1,] 1 1
[2,] NA 1
[3,] 2 4
[4,] NA 3
[6,] 1 4
我做了一个研究,我尝试了这个代码
data[! rowSums(is.na(data)) >3 , ]
但我认为这只用于连续NA
s。
推荐答案
如前所述,rle
是一个很好的起点:
is.na.rle <- rle(is.na(data[, 1]))
因为Nas只有在三个或更多的时候才是"坏的",所以我们可以重写这些值:
is.na.rle$values <- is.na.rle$values & is.na.rle$lengths >= 3
最后,使用inverse.rle
构建要过滤的索引向量:
data[!inverse.rle(is.na.rle), ]
这篇关于一列中的连续NAS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文