Ответ 1
Это должно сделать трюк:
df[- grep("REVERSE", df$Name),]
Или более безопасная версия:
df[!grepl("REVERSE", df$Name),]
Я хотел бы исключить строки, содержащие строку "REVERSE", но мои строки не совпадают точно со словом, просто добавьте его.
Мой входной кадр данных:
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) , ]
Это позволит избежать удаления всех записей, если искомое слово поиска не содержится ни в одной из строк.
Вы можете использовать функцию stri_detect_fixed из пакета stringi
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'))
Вы можете использовать его в той же самой датафрейме (df), используя ранее предоставленный код
df[!grepl("REVERSE", df$Name),]
или вы можете присвоить другому датафрейму другое имя, используя этот код
df1<-df[!grepl("REVERSE", df$Name),]