次のようなデータフレームがあります。
d <- data.frame(cbind(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)
検索している文字列が存在しない場合でも、この方法または別の方法で行を検索して削除したいと考えています。これについてどうすればいいですか?