2011-07-11 129 views
45

我該刪除數據框中某行滿足字符串匹配條件的所有行嗎?從數據框中刪除行匹配字符串的行

例如:

A,B,C 
4,3,Foo 
2,3,Bar 
7,5,Zap 

我怎麼會返回排除所有行,其中C =富一個數據幀:

A,B,C 
2,3,Bar 
7,5,Zap 
+1

相關問題:[從數據幀刪除的特定行(http://stackoverflow.com/questions/6601658/deleting-specific-rows-from-a-data-frame)。 –

回答

86

只是否定符號(!)使用==。如果DTFM是你data.frame名稱:

dtfm[!dtfm$C == "Foo", ] 

或者,移動在比較的否定:

dtfm[dtfm$C != "Foo", ] 

或者,甚至更短的使用subset()

subset(dtfm, C!="Foo") 
+4

或者只是'dftm [dtfm $ C!=「Foo」,]'這是相同的,但稍微容易閱讀。 –

+0

@Sacha,對。我忘了那個,我仍然昏昏欲睡 –

+6

..或'subset(dftm,C!=「Foo」)' –

1

你可以使用dplyr軟件包輕鬆刪除這些特定的行。

library(dplyr) 
df <- filter(df, C != "Foo")