我想以Sweave的R模式编写图形标题,然后将其添加到列表中,然后在图形标题中使用它们,例如:

caption <- list()
myresult <- data.frame(name = c('fee', 'fi'), x = c(1,2))
caption[['fig1']] <- "$\text{\Sexpr{myresult$name[1]}}\Sexpr{myresult$x[1]$"
caption[['fig2']] <- "$\text{\Sexpr{myresult$name[2]}}\Sexpr{myresult$x[2]$"

但是我收到以下错误:
Error: '\S' is an unrecognized escape in character string starting "$\text{\S"

有没有一种方法可以将这样的字符串存储在列表中,还是更好的方法?

最佳答案

两次转义\字符。而且您不需要双方括号...

caption <- list()
myresult <- data.frame(name = c('fee', 'fi'), x = c(1,2))
caption['fig1'] <- "$\\text{\\Sexpr{myresult$name[1]}}\\Sexpr{myresult$x[1]$"
caption['fig2'] <- "$\\text{\\Sexpr{myresult$name[2]}}\\Sexpr{myresult$x[2]$"

坦白说,我会编写一个简单的帮助函数:
genCaption <- function(name, value){
    sprintf("$\\text{%s}%.3f$", name, value)
}

您会得到:
> genCaption("pi", pi)
[1] "$\text{pi}3.142$"

10-08 07:55