函数
knit_child()
返回已编译输出的字符向量,可以使用cat()
和块选项results = 'asis'
来将其写回主文档。甚至可以使用子文档作为模板,并使用不同的参数重复调用
knit_child()
。下面的例子使用mpg
作为响应变量,而mtcars
数据中的其他变量作为解释变量进行回归:
一、代码如下(示例)
---
title: "Untitled"
author: "Author"
output: html_document
---
```{r, echo=FALSE, results='asis'}
res <- lapply(setdiff(names(mtcars), 'mpg'), function(x) {
knitr::knit_child(text = c(
'## 对 "`r x`" 跑回归 ',
'',
'```{r}',
'lm(mpg ~ ., data = mtcars[, c("mpg", x)])',
'```',
''
), envir = environment(), quiet = TRUE)
})
cat(unlist(res), sep = '\n')
```
总结
为了使上面的示例自成一体,上例使用 knit_child()
的 text
参数而不是文件输入来传递要编译的 R Markdown 内容。当然可以将内容写入一个文件,并将路径传递给 knit_child()
。