用变量值替换字符串中的变量名[R]

时间:2015-10-08 19:41:45

标签: r parsing substitution

我在R中有一个角色,说"\\frac{A}{B}"。我有AB的值,比如510。有没有办法可以用AB替换510

我尝试了以下内容。

words <- "\\frac{A}{B}"
numbers <- list(A=5, B=10)
output <- do.call("substitute", list(parse(text=words)[[1]], numbers))

但我在\上收到错误。有没有办法可以做到这一点?我试图用实际变量值创建方程式。

2 个答案:

答案 0 :(得分:3)

您可以使用 stringi 函数stri_replace_all_fixed()

stringi::stri_replace_all_fixed(
    words, names(numbers), numbers, vectorize_all = FALSE
)
# [1] "\\frac{5}{10}"

答案 1 :(得分:2)

试试这个:

sprintf(gsub('\\{\\w\\}','\\{%d}',words),5,10)