你有正确的想法,试试看
reduce2
具有
stringr::str_replace()
:
library(purrr)
library(stringr)
tst_str <- c("abc", "123", "klm", "lop")
replacements <- c("za12", "poi", "uyt")
patterns <- c("abc", "123", "klm")
reduce2(patterns, replacements, str_replace, .init=tst_str)
[1] "za12" "poi" "uyt" "lop"
注意
.f
在里面
reduce2()
只是
requires
接受3个参数的函数。实际上你不需要明确地把它们传进来,
reduce
会处理好的。
交替(尽管不是高阶):
names(replacements) <- patterns
str_replace_all(tst_str, replacements)