R语言 从`.qmd`文件中提取`setup`代码块并执行(源代码)

yhuiod9q  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(102)

我正在寻找一种方法来从.qmd文件中提取一个名为setup的代码块/块,并执行该代码块(我假设有效地获取它)。
有没有办法做到这一点?
我正在使用rmarkdown::yaml_front_matter()$params来获取参数,但是查看knits包中的其他函数没有帮助。

smdnsysy

smdnsysy1#

假设你有foo.qmd,如下所示:

---
output: revealjs
---

```{r setup}
library(tidyr)
library(stringr)
iris

您可以使用[`parsermd`](https://github.com/rundel/parsermd)解析文件并提取所需的项(代码块、标题等)。然后,从markdown语法中删除元素并评估代码:

library(parsermd)

rmd <- parse_rmd("foo.qmd")

setup_chunk <- rmd_select(rmd, "setup") |>
as_document()

setup_chunk <- setup_chunk[-grep("```", setup_chunk)]
setup_chunk
#> [1] "library(tidyr)" "library(stringr)" ""

eval(parse(text = setup_chunk))


另一种方法是将`setup_chunk`写入一个文件,然后`source()`再将其写入。

相关问题