考虑以下test.Rmd
:
```{r setup, purl=FALSE}
opts_chunk$set(purl=FALSE)
opts_template$set(nopurl = list(purl=FALSE))
```
```{r test1}
print(1)
```
```{r test2, opts.label='nopurl'}
print(2)
```
```{r test3, purl=FALSE}
print(3)
```
purl('test.Rmd')
给出test.R
,其中不应该清除所有test *块,但是:## ----test1---------------------------------------------------------------
print(1)
## ----test2, opts.label='nopurl'------------------------------------------
print(2)
尽管有全局选项
test3
和标签opts_chunk$set(purl=FALSE)
,但是只有nopurl
不会被清除,其余的都会被清除。为什么?
最佳答案
这不是错误,只是purl()
没有执行任何代码块,因此第一个代码块并未真正执行。 purl()
函数在许多方面都不可靠,请参阅?knitr::hook_purl
。就是说,我完全不建议处理文档。编织更可靠(请参阅?knitr::purl
中的“注意”部分)。