【发布时间】:2017-12-21 00:55:42
【问题描述】:
问题
当试图将包含read_chunk 行的purl 脚本中的knit .Rmd 放入父.Rmd 中时,块不完整,仅形成代码块。我希望能够正常knit输出文件。
代码
main.Rmd
---
output: html_document
---
```{r, include=FALSE}
knitr::read_chunk("script_chunk.R")
```
### Print sessionInfo()
```{r, ref.label='script_chunk', eval=FALSE}
```
script_chunk.R
# ---- script_chunk
sessionInfo()
针织
当我用knit("main.Rmd", "output.Rmd") 处理这个时,会生成以下文件:
---
output: html_document
---
### Print sessionInfo()
```r
sessionInfo()
```
但是,该块的期望输出是:
```{r script_chunk}
sessionInfo()
```
当我目前knitoutput.Rmd 时,我只得到一个未评估的代码块,因为该块缺少花括号(最好是块名称)。
解决方法
我可以使用readLines 来实现我所追求的,例如:
```{r, results='asis', collapse=TRUE, echo=FALSE}
cat("```{r script_chunk}\n")
cat(paste(readLines("script_chunk.R"), "\n", collapse = ""))
cat("```\n")
```
有没有更优雅的方法来做到这一点?
【问题讨论】:
-
将一个 Rmd 编入另一个 Rmd 感觉很奇怪。
-
你确定你能做到吗? output.Rmd 不只是一个扩展名错误的 Markdown 文档吗?
-
这就是我这么说的原因。你确定你没有生成一个简单的降价文档,这就是为什么你会得到一个不可执行的 R 块。
-
你不能只使用
eval = TRUE然后直接将结果打印到HTML吗? -
@F.Privé,不,中间文件需要重新生成,不能访问原始子文件