你可以使用 stringr 的 str_replace:
library(stringr)
value <- str_replace(v1,"corey|emily","name")
> str_replace(v1,"corey|emily","name")
[1] "name joe" "joe" "name" "joe"
如果你想把所有东西都放在一个字符串中,你可以在paste 中使用collapse 选项,如下所示:
> paste(value,collapse=" ")
[1] "name joe joe name joe"
如果您想使用 BASE R 中的 gsub
value <- gsub("corey|emily","name",v1)
> gsub("corey|emily","name",v1)
[1] "name joe" "joe" "name" "joe"
>
> paste(value,collapse=" ")
[1] "name joe joe name joe"
如果你想使用变量,那么你可以使用 paste0:
str_replace(v1,paste0(v2[1],"|",v2[2]),"name")
更准确地说:
str_replace(v1,paste0(v2[1:length(v2)],collapse="|"),"name")
编辑评论后:
我承认,SO 是一个很棒的地方,正如 @Scarabee 所建议的,添加了非常简单的解决方案,即 str_replace(v1,v2,"name")
> value <- str_replace(v1,paste0(v2,collapse="|"),"name")
> final <- paste(value,collapse=" ")
> final
[1] "name joe joe name joe"
结果是一样的。