Sweave,包含源R函数文件

4

我有一个Rjob写在a.R文件中,调用了b.R文件和c.snw文件中的函数。我通过“R CMD c.snw”调用c.snw文件。

我想要的是只将a.R文件通过\SweaveInput{a.R}包含在c.snw文件中,但是从a.R文件调用的函数的代码也应该写在tex文件中。这意味着Sweave将跟踪所包含的主R文件(即a.R文件)中的所有source()命令。

有人能建议如何做到这一点吗?

2个回答

7

我想在这种情况下,使用knitr软件包将会使生活更加容易。您可以将a.R视为一个代码块的label-a,并将其写入c.Rnw文件中:

<<read-code>>=
read_chunk('a.R', labels = 'label-a')
@
<<label-a>>
@

当你使用library(knitr); knit('c.Rnw')编译c.Rnw时,a.R将包含在结果中(这相当于将代码复制并粘贴到label-a块中)。这被称为knitr中的代码外部化\SweaveInput{}不用于输入R源代码;您只能输入Rnw文档。

2

如果你在 a.R 中使用 source("b.R", echo = TRUE),我相信你会得到想要的结果。


谢谢。这是更进一步的一步。 - user1407220

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接