我是否删除某个行符合字符串匹配条件的数据框中的所有行?
例如:
A,B,C
4,3,Foo
2,3,Bar
7,5,Zap
如何返回排除C = Foo的所有行的数据框:
A,B,C
2,3,Bar
7,5,Zap
答案 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")