2012-09-19 34 views
4

我有這兩行代碼,我用R Sweave函數運行。在 SweaveInput {}中使用Sexpr {}

\SweaveInput{samples.rnw} 
\SweaveInput{\Sexpr{args$samples}} 

第一行導致列入相應文件的內容,而第二隻引起Sexpr {}期限,但沒有其他的評價。 我想要的是:首先讓我們評估一下Sexpr {}這個術語,然後再進行文件內容的包含。

如何解決這個問題? 感謝

+0

用Sweave再次運行Sweave的輸出會有效。是否有更優雅的解決方案? – user1240076

回答

3

如果使用knitr package,該解決方案將是簡單地

<<child='samples.rnw'>>= 
<<child=args$samples>>= 
@ 

Sweave是在編程方面比knitr弱得多。例如,knitr允許塊選項是任何有效的R表達式,這就是我們可以在這裏編寫child=args$samples的原因; knitr將像函數參數一樣評估塊選項。

順便說一下,child選項相當於\SweaveInput{},但我強烈不鼓勵使用僞LaTeX命令。欲瞭解更多關於Sweave與knitr,請參閱http://yihui.name/knitr/demo/sweave/