I would like to exclude lines containing a string \"REVERSE\", but my lines do not match exactly with the word, just contain it.
My input data frame:
You can use this function if it's multiple string
df[!grepl("REVERSE|GENJJS", df$Name),]
This should do the trick:
df[- grep("REVERSE", df$Name),]
Or a safer version would be:
df[!grepl("REVERSE", df$Name),]
You can use stri_detect_fixed function from stringi
package
stri_detect_fixed(c("REVERSE223","GENJJS"),"REVERSE")
[1] TRUE FALSE
Actually I would use:
df[ grep("REVERSE", df$Name, invert = TRUE) , ]
This will avoid deleting all of the records if the desired search word is not contained in any of the rows.
You could use dplyr::filter()
and negate a grepl()
match:
library(dplyr)
df %>%
filter(!grepl('REVERSE', Name))
Or with dplyr::filter()
and negating a stringr::str_detect()
match:
library(stringr)
df %>%
filter(!str_detect(Name, 'REVERSE'))
You can use it in the same datafram (df) using the previously provided code
df[!grepl("REVERSE", df$Name),]
or you might assign a different name to the datafram using this code
df1<-df[!grepl("REVERSE", df$Name),]