我有一个类似于这样的数据框:
d <- data.frame(x=1,
y=1:10,
z=c("apple","pear","banana","A","B","C","D","E","F","G"),
stringsAsFactors = FALSE)
我想从这个数据框中删除某些行,具体取决于列z的内容:
要删除所有满足条件的行,可以使用以下代码:
new_d <- d[-grep("D",d$z),]
这个很好用,第7行已经被删除:
new_d
x y z
1 1 1 apple
2 1 2 pear
3 1 3 banana
4 1 4 A
5 1 5 B
6 1 6 C
8 1 8 E
9 1 9 F
10 1 10 G
然而,当我使用grep搜索不在列z中的内容时,它似乎会删除数据框的所有内容:
new_d <- d[-grep("K",d$z),]
new_d
# [1] x y z
# <0 rows> (or 0-length row.names)
我想以某种方式搜索并删除行,即使我要搜索的字符不在其中。 如何操作?