文字列「REVERSE」を含む行を除外したいのですが、私の行はWordと完全には一致せず、単に含まれています。
私の入力データフレーム:
Value Name
55 REVERSE223
22 GENJJS
33 REVERSE456
44 GENJKI
私の期待される出力:
Value Name
22 GENJJS
44 GENJKI
これでうまくいくはずです:
df[- grep("REVERSE", df$Name),]
または、より安全なバージョンは次のとおりです。
df[!grepl("REVERSE", df$Name),]
実際に私は使用します:
df[ grep("REVERSE", df$Name, invert = TRUE) , ]
これにより、目的の検索ワードがどの行にも含まれていない場合、すべてのレコードが削除されなくなります。
stringi
パッケージのstri_detect_fixed関数を使用できます
stri_detect_fixed(c("REVERSE223","GENJJS"),"REVERSE")
[1] TRUE FALSE
dplyr::filter()
を使用して、grepl()
の一致を否定できます。
library(dplyr)
df %>%
filter(!grepl('REVERSE', Name))
または、dplyr::filter()
でstringr::str_detect()
の一致を否定します:
library(stringr)
df %>%
filter(!str_detect(Name, 'REVERSE'))