Je voudrais exclure les lignes contenant une chaîne "REVERSE", mais mes lignes ne correspondent pas exactement au mot Word, elles le contiennent simplement.
Mon cadre de données d'entrée:
Value Name
55 REVERSE223
22 GENJJS
33 REVERSE456
44 GENJKI
Mon rendement attendu:
Value Name
22 GENJJS
44 GENJKI
Cela devrait faire l'affaire:
df[- grep("REVERSE", df$Name),]
Ou une version plus sûre serait:
df[!grepl("REVERSE", df$Name),]
En fait j'utiliserais:
df[ grep("REVERSE", df$Name, invert = TRUE) , ]
Cela évitera de supprimer tous les enregistrements si le mot recherché n'est contenu dans aucune des lignes.
Vous pouvez utiliser la fonction stri_detect_fixed du package stringi
stri_detect_fixed(c("REVERSE223","GENJJS"),"REVERSE")
[1] TRUE FALSE
Vous pouvez utiliser dplyr::filter()
et nier une correspondance grepl()
:
library(dplyr)
df %>%
filter(!grepl('REVERSE', Name))
Ou avec dplyr::filter()
et en annulant une correspondance stringr::str_detect()
:
library(stringr)
df %>%
filter(!str_detect(Name, 'REVERSE'))