• R语言
  • 当缺失数据较多时如何删除整行?

我有一较大的数据集,几万行,有些行数据缺失严重,想删掉该行,如何在r中删除?手工的话工作量太大。

我编的条件循环,如下(其中cbb已经是一数据框)

for(i in 1:24000){

for(j in 1:10){

if(cbb[i,j]==cbb[i,j+1]==cbb[i,j+2]== NA) na.omit(cbb[i,])}}

总是出问题

错误: 意外的'==' 于

" for(j in 1:10){

if(cbb[i,j]==cbb[i,j+1]=="

改成=也不行。

各位帮忙看看如何实现。谢谢!

这个之前写过一个函数,带两个参数,某一行多于几个NA就删掉该行,

后来好久没用,找不到了。。

但是发现R根本不用这么麻烦

<br />
> cx<br />
   x x2<br />
1  1 NA<br />
2  2 NA<br />
3  3  1<br />
4 NA  2<br />
5 NA  3<br />
6  4  4<br />
7  5  5<br />
8 NA NA<br />
9 NA NA<br />
>  rowSums(is.na(cx))  #每行NA的个数,如果是列的话就用colSums<br />
[1] 1 1 0 1 1 0 0 2 2<br />
>  which(rowSums(is.na(cx))>1)  #多于1个NA的行号<br />
[1] 8 9<br />
> cx[-which(rowSums(is.na(cx))>1),]  #<br />
   x x2<br />
1  1 NA<br />
2  2 NA<br />
3  3  1<br />
4 NA  2<br />
5 NA  3<br />
6  4  4<br />
7  5  5</p>
<p>> cx[which(rowSums(is.na(cx))>1),]<br />
   x x2<br />
8 NA NA<br />
9 NA NA<br />
> </p>
<p>
</p>

谢谢bioshaw。

真的很好用!