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

Kyl*_*ndt 60 r dataframe

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

例如:

A,B,C
4,3,Foo
2,3,Bar
7,5,Zap
Run Code Online (Sandbox Code Playgroud)

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

A,B,C
2,3,Bar
7,5,Zap
Run Code Online (Sandbox Code Playgroud)

Luc*_*zer 107

只需使用==带否定符号(!).如果dtfm是data.frame的名称:

dtfm[!dtfm$C == "Foo", ]
Run Code Online (Sandbox Code Playgroud)

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

dtfm[dtfm$C != "Foo", ]
Run Code Online (Sandbox Code Playgroud)

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

subset(dtfm, C!="Foo")
Run Code Online (Sandbox Code Playgroud)

  • ..或`subset(dftm,C!="Foo")` (6认同)
  • 或者只是`dftm [dtfm $ C!="Foo",]`这是相同但更容易阅读. (4认同)
  • 那将是另一个问题.但关键是要在%和%中使用%.在你的例子中!(%c中的C%("Foo","Bar")) (4认同)

小智 7

您可以使用该dplyr软件包轻松删除那些特定的行。

library(dplyr)
df <- filter(df, C != "Foo")
Run Code Online (Sandbox Code Playgroud)