R:如何删除包含特定字符模式的字符串?

时间:2016-08-20 12:14:31

标签: r gsub stringr

我正在尝试删除包含特定字符模式的字符串。我的数据看起来像这样:

places <- c("copenhagen", "copenhagens", "Berlin", "Hamburg")

我想删除所有包含“copenhagen”的元素,即"copenhagen""copenhagens"。 但我只能提出以下代码:

library(stringr) replacement.vector <- c("copenhagen", "copenhagens")

for(i in 1:length(replacement.vector)){ places = lapply(places, FUN=function(x) gsub(paste0("\\b",replacement.vector[i],"\\b"), "", x))

我正在寻找一个能够删除包含“copenhagen”的所有元素的函数,而不必指定该元素是否还包含其他字母。

最佳, 剂量

1 个答案:

答案 0 :(得分:3)

根据OP的代码,似乎我们需要对“地点”进行分组。在这种情况下,最好将grepinvert= TRUE参数

一起使用
grep("copenhagen", places, invert=TRUE, value = TRUE)
#[1] "Berlin"  "Hamburg"

或使用grepl并否定(!

places[!grepl("copenhagen", places)]
#[1] "Berlin"  "Hamburg"