我通常有一个主R标记文件或knitr LaTeX文件,其中我有一些其他R文件(例如,用于数据处理).然而,我认为在某些情况下,让这些源文件成为它们自己的可复制文件(例如,一个R标记文件,它不仅包含数据处理命令,而且还生成一个解释数据处理决策的可复制文件)是有益的.
因此,我希望在我的主R标记文件中有一个类似于source('myfile.rmd')
的命令.这将提取myfile.rmd
的R代码块中的所有R代码并将其源代码.当然,这会导致错误.
以下命令有效:
```{r message=FALSE, results='hide'}
knit('myfile.rmd', tangle=TRUE)
source('myfile.R')
```
其中,如果需要输出,可以省略results='hide'
.也就是说,knitr将R代码从myfile.rmd
输出到myfile.R
.
然而,它似乎并不完美:
- 它会导致创建一个额外的文件
- 如果需要控制显示,它需要出现在自己的代码块中.
- 它不像简单的
source(...)
那么优雅.
因此,我的问题是: