0

Rのデータセットから一連の行を削除するのに本当に苦労しています.

次のようなデータフレームがあります。

ID    col1   sp  
R1    1.2    F  
R2    2.35   F   
R3    5      NA  
R4    4.3    NA    
R5    2.22   T  
R6    1.35   F

sp 列R5に a があるという事実に基づいて、row を削除したいと思います。しかし、まだデータが必要なので、行 (つまり行 R3 と R4)Tを削除したくありません。NAcol1

私が使用したコード:

data1<-subset(data,sp!="T")

NAただし、列内のすべての行sp( IDs R3、R4、および R5)も削除されます。私も試しました:

data1<-subset(data,sp!="T",na.rm=FALSE)

しかし、これでも3行すべてが削除されました-列「sp」に「T」がある行のみを削除したいです。私はそれを理解できず、検索しましたが、この特定の問題に対する答えが見つかりません。私は1000以上の行を持っていて、それらを手動で削除するつもりはなかったので、どんな助けも素晴らしいでしょう! ありがとう。

4

3 に答える 3

1

これを処理する標準的な方法は、%in%演算子を使用することです。

data[!(data$sp %in% "T"),]
于 2013-08-20T22:54:52.277 に答える
0

You'll need a combination of the function is.na and the OR (|) operator:

data1[!data1$sp | is.na(data1$sp),]

Using subset notation:

subset(data1, !sp | is.na(sp))
于 2013-08-20T22:06:40.780 に答える