考虑以下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中的“注意”部分)。

09-07 21:57