在 Sweave 中将变量从 TeX 传递到 R

在 Sweave 中将变量从 TeX 传递到 R

我知道可以使用它将\Sexpr信息从 R 块传递到 LaTeX。例如,

<<echo=F,results=hide>>=
a = 7
@    
42 is the answer to 6 x \Sexpr{a}

有没有同等的方法将信息从 LaTeX 传递到 R?例如,

\foreach \n in {1,...,7}{
<<echo=F,fig=T,include=T>>
x=1:10
plot(x,x^(\n)-x)
@

答案1

Sweave 只允许每个代码块绘制一个图,这可能是你需要在 LaTeX 中使用特殊循环的原因,而针织品为您提供一个区块中的所有图。R 中的这个常规循环将与该knitr包一起使用:

<<echo = FALSE>>=
x = 1:10
for (n in 1:7) {
  plot(x, x^n-x)
}
@

如果您想编写带有循环的内容,请使用 R 循环而不是 LaTeX 循环,其可能如下所示:

<<results='asis'>>=
for (i in 1:10) {
  cat('this is plot ', i, ' and write whatever you want here')
}
@

请注意,使用 Sweave 时,您需要使用results=tex而不是knitr语法results='asis'

相关内容