从数据框中删除行,其中行与字符串匹配

时间:2011-07-11 13:04:51

标签: r dataframe

我是否删除某个行符合字符串匹配条件的数据框中的所有行?

例如:

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

如何返回排除C = Foo的所有行的数据框:

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

4 个答案:

答案 0 :(得分:101)

只需将==与否定符号(!)一起使用即可。如果dtfm是data.frame的名称:

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

或者,在比较中移动否定:

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

或者,使用subset()时更短:

subset(dtfm, C!="Foo")

答案 1 :(得分:5)

您可以使用dplyr包轻松删除这些特定行。

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

答案 2 :(得分:1)

我在数据框中有一个列(A),其中包含3个值(是,否,未知)。我想只过滤那些值为“是”的行,这是代码,希望这对你们有帮助 -

df <- df [(!(df$A=="no") & !(df$A=="unknown")),]

答案 3 :(得分:0)

如果你想使用 dplyr,为了删除行“Foo”:

df %>%
 filter(!C=="Foo")