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

FDo*_*ose 3 r gsub stringr

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

places <- c("copenhagen", "copenhagens", "Berlin", "Hamburg")
Run Code Online (Sandbox Code Playgroud)

我想删除所有包含“哥本哈根”的元素,即"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))

我正在寻找一个函数,该函数使我能够删除包含“哥本哈根”的所有元素,而无需指定该元素是否还包含其他字母。

最佳剂量

akr*_*run 5

根据 OP 的代码,我们似乎需要对“地点”进行子集化。在这种情况下,最好grep与invert= TRUE参数一起使用

grep("copenhagen", places, invert=TRUE, value = TRUE)
#[1] "Berlin"  "Hamburg"
Run Code Online (Sandbox Code Playgroud)

或使用grepl并否定 ( !)

places[!grepl("copenhagen", places)]
#[1] "Berlin"  "Hamburg"
Run Code Online (Sandbox Code Playgroud)