我在文件 aR 中写入了一个 Rjob,它调用在文件 bR 中写入的函数,以及一个 snw 文件 c.snw。我通过“R CMD c.snw”调用 c.snw。
我正在寻找一种可能性,只通过 \SweaveInput{aR} 将 aR 包含到 c.snw 中,但是从 aR 调用的函数的代码也应该写在 tex 文件中。这意味着 Sweave 会跟踪包含的主 R 文件(此处为 aR)中的所有 source() 命令。
谁能建议如何做到这一点?
knitr
我想在这种情况下,有了这个包裹,生活会更轻松。您可以读a.R
为一个块label-a
,并将其写入c.Rnw
:
<<read-code>>=
read_chunk('a.R', labels = 'label-a')
@
<<label-a>>
@
当你用 编译c.Rnw
时library(knitr); knit('c.Rnw')
,a.R
将包含在结果中(相当于将代码复制粘贴到块中label-a
)。这在. _knitr
\SweaveInput{}
不用于输入R源代码;您只能输入 Rnw 文档。
source("b.R", echo = TRUE)
我敢肯定,如果你使用in ,你会得到你想要的a.R
。