删除r中包含特定字符串的变量

删除r中包含特定字符串的变量,r,stringr,R,Stringr,我有数百个观察结果,我想删除那些包含字符串“english Basic”的。我似乎找不到这样做的正确语法。我只能想出如何用那个根弦来保持观察结果。例如,我使用下面的代码仅获取包含字符串的观察结果,它工作得非常好: eng_base <- zdata %>% filter(str_detect(zdata$ListingDescription, “english basement”)) eng_base% 过滤器(str_detect(zdata$ListingDescription

我有数百个观察结果,我想删除那些包含字符串“english Basic”的。我似乎找不到这样做的正确语法。我只能想出如何用那个根弦来保持观察结果。例如,我使用下面的代码仅获取包含字符串的观察结果,它工作得非常好:

eng_base <- zdata %>%
filter(str_detect(zdata$ListingDescription, “english basement”))
eng_base%
过滤器(str_detect(zdata$ListingDescription,“英语基础”))

现在我想要一个数据集,top_10mpEB,它不包括包含“英语基础”的观察结果。非常感谢你的帮助

可以使用grepl()执行此操作:


x我不知道您的数据是什么样子的,但是这个示例可能会帮助您-我认为您只需要对
stru detect返回的逻辑向量求反即可:

library(dplyr)
library(stringr)
zdata <- data.frame(ListingDescription = c(rep("english basement, etc",3), letters[1:2] ))
zdata
#  ListingDescription
#1   english basement, etc
#2   english basement, etc
#3   english basement, etc
#4                  a
#5                  b
zdata %>%
  filter(!str_detect(ListingDescription, "english basement"))
#   ListingDescription
#1:                  a
#2:                  b
library(data.table)
setDT(zdata)
zdata[! ListingDescription %like% "english basement"]
#   ListingDescription
#1:                  a
#2:                  b

您可以使用dplyr轻松过滤数据帧

library(dplyr)
new_data <- data %>%
   filter(!ListingDescription=="english basement")
库(dplyr)
新数据%
过滤器(!ListingDescription==“英语基础”)

这个!当我意识到它的意思是“不平等”时,我就成了我最好的朋友。

=
做同样的事情,但是有一个功能请注意
=更清楚一点。然而,在这里你可以准确地捕捉到“英语地下室”,但是如果你需要捕捉像“英语地下室和其他东西”这样的东西,这将不起作用。谢谢瓦伦丁,我后来意识到他的字符串可能比只有“英语地下室”更广泛,你的答案涵盖了所有场景。里奇,如果你想否决我,请你再解释一下thanks@Abby_studies_fish,我同意目前还不清楚数据应该是什么样子,您提出的解决方案可能是有效的。谢谢大家的帮助!似乎已经成功了。替代性的欺骗:@MikeH.,谢谢你注意到重复的内容。我认为这个注释在这里非常适用。我认为这也与Abby_研究_fish落选的原因有关。
library(dplyr)
new_data <- data %>%
   filter(!ListingDescription=="english basement")