我在文件 a.R 中写入了一个 Rjob,它调用在文件 b.R 中写入的函数,以及一个 snw 文件 c.snw。我通过“R CMD c.snw”调用 c.snw。
我正在寻找一种可能性,仅通过\SweaveInput{a.R} 将 a.R 包含到 c.snw 中,但是从 a.R 调用的函数的代码也应该写在 tex 文件中。这意味着 Sweave 会跟踪包含的主 R 文件(此处为 a.R)中的所有 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
中)。这叫做code externalization在 knitr
.\SweaveInput{}
不用于输入R源代码;您只能输入 Rnw 文件。
关于r - Sweave,包括源 R-Function 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715916/