我有一个脚本,我想在其中替换以##表示的一组字符串
script <- c("This is #var1# with a mean of #mean1#")
我的键值列表是:
pairs <- list(
list("#var1#", "Depression"),
list("#mean1#", "10.1")
)
我的循环看起来像这样,并完成了工作。
for (pair in pairs) {
script <- gsub(pair[[1]], pair[[2]], script)
}
但是,有人知道不使用循环即可解决此问题的方法吗?
您可以使用stringr。
如中所述?str_replace
:
要在字符串的每个元素中执行多次替换,请将命名向量(
c(pattern1 = replacement1)
)传递给str_replace_all
。
因此,在您的情况下:
library(stringr)
str_replace_all(script, setNames(sapply(pairs, "[[", 2), sapply(pairs, "[[", 1)))
# [1] "This is Depression with a mean of 10.1"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句