我有一个类型的模板:
template <- "Average: {{av}} \n Sum: {{sum}}"
inputs <- list(av = "15", sum = "100")
我需要使用{{av}}
的相应元素替换所有出现的{{sum}}
和inputs
。
我试过了:
gsub("\\{\\{(.+)\\}\\}", inputs["\\1"], template, perl = TRUE)
但它用“NULL”替换所有标签。
如何正确更换?
答案 0 :(得分:3)
以前解决方案的替代方案:
for (i in names(inputs))
regmatches(template,gregexpr(sprintf("\\{\\{%s\\}\\}", i), template)) <- inputs[[i]]
HTH
答案 1 :(得分:1)
你可以使用循环来完成。
template <- "Average: {{av}} \n Sum: {{sum}}"
inputs <- list(av = "15", sum = "100")
template.copy <- template
for (i in 1:length(inputs)) {
x <- inputs[i]
xn <- names(x)
template.copy <- gsub(paste("\\{\\{", xn ,"\\}\\}", sep = ""),
paste("\\{\\{", x, "\\}\\}", sep = ""),
x = template.copy, perl = TRUE)
}
> template.copy
[1] "Average: {{15}} \n Sum: {{100}}"