我想在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"
有没有办法可以将这样的字符串存储在列表中,还是更好的方法?
答案 0 :(得分:7)
双重转义\
个字符。而且你不需要双方括号......
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$"