假设我有两个向量,如下所示:
a <- c("this", "is", "test")
b <- c("that", "was", "boy")
我还有一个字符串变量,如下所示:
string <- "this is a story about a test"
我想替换字符串中的值,使其变为以下内容:
string <- "that was a story about a boy"
我可以使用 for 循环来完成此操作,但我希望将其矢量化。我该怎么做?
如果您愿意使用非基础包,stringi
在这里会工作得很好:
stringi::stri_replace_all_fixed(string, a, b, vectorize_all = FALSE)
#[1] "that was a story about a boy"
请注意,对于长度 > 1 的输入字符串,这也以相同的方式工作。
为了安全起见,您可以调整它 - 类似于 RUser 的答案 - 在替换之前检查单词边界:
stri_replace_all_regex(string, paste0("\\b", a, "\\b"), b, vectorize_all = FALSE)
这将确保您不会意外更换his
with hwas
, 例如。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)