R:如何删除包含特定字符模式的字符串?
R: How to remove a string containing a specific character pattern?
我正在尝试删除包含特定字符模式的字符串。我的数据看起来像这样:
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" 的元素,而不必指定该元素是否还包含其他字母。
最好的,
剂量
根据 OP 的代码,我们似乎需要对 'places' 进行子集化。在这种情况下,最好将 grep
与 invert= TRUE
参数一起使用
grep("copenhagen", places, invert=TRUE, value = TRUE)
#[1] "Berlin" "Hamburg"
或使用 grepl
并否定 (!
)
places[!grepl("copenhagen", places)]
#[1] "Berlin" "Hamburg"
我正在尝试删除包含特定字符模式的字符串。我的数据看起来像这样:
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" 的元素,而不必指定该元素是否还包含其他字母。
最好的, 剂量
根据 OP 的代码,我们似乎需要对 'places' 进行子集化。在这种情况下,最好将 grep
与 invert= TRUE
参数一起使用
grep("copenhagen", places, invert=TRUE, value = TRUE)
#[1] "Berlin" "Hamburg"
或使用 grepl
并否定 (!
)
places[!grepl("copenhagen", places)]
#[1] "Berlin" "Hamburg"