我已经对.Rmd文件进行了一些分析。现在,我想在报表中使用在此文件中创建的一些对象,这些报表正在以.Rnw文件的形式编写。由于从Sweave切换为knittr作为编织引擎,因此会发生以下情况:
如果我在控制台中运行行purl(input = 'myfile.Rmd',output = 'myfile.R')
,则会得到一个.R文件,该文件仅包含.Rmd文件中的R个块。那就是我想要的。
但是,如果我将此行放入.Rnw文件并进行编织(即.Rnw文件),则最终会得到myfile.R
并且没有错误,但是它完全为空(除了换行符为出于某些原因)。
我还尝试将knitr::opts_chunk$set(purl = TRUE)
和knit_hooks$set(purl = hook_purl)
放在.Rmd文件中,然后在我的.Rnw文件中使用knit()
代替purl()
,但是结果是一样。
以下是一个小示例:
test.Rnw
\documentclass{article}
\begin{document}
<<test>>=
library(knitr)
purl(input = 'test.Rmd',output = 'test.R')
@
\end{document}
test.Rmd
```{r}
answer <- 42
```
预期输出:
## ------------------------------------------------------------------------
answer <- 42
实际输出:
有人对此有经验吗? 这是错误还是我错过了什么? 谢谢您的帮助!