我有一個Rjob寫入文件a.R,它調用寫在文件b.R中的函數和一個snw文件c.snw。我通過「R CMD c.snw」調用c.snw。Sweave,包括來源的R函數文件
我正在尋找一種可能性,只通過\ SweaveInput {a.R}將a.R包括到c.snw中,但是從a.R調用的函數的代碼也應該寫入tex文件中。這意味着Sweave跟蹤包含的主R文件(這裏是a.R)中的所有source()命令。
任何人都可以建議如何做到這一點?
我有一個Rjob寫入文件a.R,它調用寫在文件b.R中的函數和一個snw文件c.snw。我通過「R CMD c.snw」調用c.snw。Sweave,包括來源的R函數文件
我正在尋找一種可能性,只通過\ SweaveInput {a.R}將a.R包括到c.snw中,但是從a.R調用的函數的代碼也應該寫入tex文件中。這意味着Sweave跟蹤包含的主R文件(這裏是a.R)中的所有source()命令。
任何人都可以建議如何做到這一點?
我很肯定你會得到你想要的,如果你在a.R
中使用source("b.R", echo = TRUE)
。
我猜在這種情況下,使用knitr
包的生活會更容易。您可以在c.Rnw
讀a.R
作爲一個塊label-a
,並把它寫:
<<read-code>>=
read_chunk('a.R', labels = 'label-a')
@
<<label-a>>
@
當您編譯c.Rnw
與library(knitr); knit('c.Rnw')
,a.R
將被納入結果(也就相當於&粘貼代碼複製到塊label-a
) 。這在knitr
中被稱爲code externalization。
\SweaveInput{}
不用於輸入R源代碼;你只能輸入Rnw文件。
謝謝。這是更進一步。 – user1407220