我有两行代码,我用R Sweave函数运行。
\SweaveInput{samples.rnw}
\SweaveInput{\Sexpr{args$samples}}
第一行导致包含相应文件的内容,而第二行只导致Sexpr {}术语的评估,但没有别的。 我想要的是:首先评估Sexpr {}术语,然后再包含相应的文件内容。
如何解决这个问题? 感谢
答案 0 :(得分:3)
如果您使用knitr
package,解决方案就是
<<child='samples.rnw'>>=
<<child=args$samples>>=
@
在可编程性方面,Sweave比knitr
弱得多。例如,knitr
允许块选项是任何有效的R表达式,这就是为什么我们可以在这里写child=args$samples
的原因; knitr
将像函数参数一样评估块选项。
BTW,child
选项等同于\SweaveInput{}
,但我强烈反对使用伪LaTeX命令。有关Sweave vs knitr
的更多信息,请参阅http://yihui.name/knitr/demo/sweave/