运行 来自另一个 .rmd 的 RMarkdown (.rmd) 而没有创建 HTML 输出
Run RMarkdown (.rmd) from inside another .rmd without creating HTML output
我正在使我的代码更加模块化,并希望从一个整体 RMarkdown 中 运行 多个 RMarkdown 文件。我相信如果我将所有 RMarkdown 文件翻译成 .R 脚本并使用 source()
,我可以做到这一点,但我喜欢 RMarkdown 的 document-like 性质,我可以描述我正在做的事情以纯文本形式进行。
目标是整理数据并导出可用的 .sav
文件。我想从 run.rmd
运行 clean.rmd
,但我不想要任何 HTML/pdf/etc。输出。删除 YAML header 中的输出行不会阻止输出。如果有一种方法可以在不将所有内容都翻译成 .R 脚本的情况下做到这一点,我将非常感激。谢谢。
clean.rmd: 执行清理的脚本
---
title: "clean"
author: "jrcalabrese"
date: "12/30/2021"
output: html_document
---
```{r}
library(tidyverse)
library(haven)
```
```{r}
data(cars)
cars <- cars %>%
mutate(newvar = speed + dist)
```
```{r}
write_spss(cars, "~/Documents/cars_new.sav", compress = FALSE)
```
run.rmd:运行s clean.rmd
的脚本
---
title: "run"
author: "jrcalabrese"
date: "12/30/2021"
output: html_document
---
```{r}
rmarkdown::render("~/Documents/clean.rmd")
```
感谢您的帮助!此功能有效:
---
title: "run"
author: "jrcalabrese"
date: "12/30/2021"
#output: html_document
---
```{r}
source_rmd = function(file, ...) {
tmp_file = tempfile(fileext=".R")
on.exit(unlink(tmp_file), add = TRUE)
knitr::purl(file, output=tmp_file)
source(file = tmp_file, ...)
}
```
```{r}
source_rmd("~/Documents/clean.rmd")
```
我正在使我的代码更加模块化,并希望从一个整体 RMarkdown 中 运行 多个 RMarkdown 文件。我相信如果我将所有 RMarkdown 文件翻译成 .R 脚本并使用 source()
,我可以做到这一点,但我喜欢 RMarkdown 的 document-like 性质,我可以描述我正在做的事情以纯文本形式进行。
目标是整理数据并导出可用的 .sav
文件。我想从 run.rmd
运行 clean.rmd
,但我不想要任何 HTML/pdf/etc。输出。删除 YAML header 中的输出行不会阻止输出。如果有一种方法可以在不将所有内容都翻译成 .R 脚本的情况下做到这一点,我将非常感激。谢谢。
clean.rmd: 执行清理的脚本
---
title: "clean"
author: "jrcalabrese"
date: "12/30/2021"
output: html_document
---
```{r}
library(tidyverse)
library(haven)
```
```{r}
data(cars)
cars <- cars %>%
mutate(newvar = speed + dist)
```
```{r}
write_spss(cars, "~/Documents/cars_new.sav", compress = FALSE)
```
run.rmd:运行s clean.rmd
的脚本---
title: "run"
author: "jrcalabrese"
date: "12/30/2021"
output: html_document
---
```{r}
rmarkdown::render("~/Documents/clean.rmd")
```
感谢您的帮助!此功能有效:
---
title: "run"
author: "jrcalabrese"
date: "12/30/2021"
#output: html_document
---
```{r}
source_rmd = function(file, ...) {
tmp_file = tempfile(fileext=".R")
on.exit(unlink(tmp_file), add = TRUE)
knitr::purl(file, output=tmp_file)
source(file = tmp_file, ...)
}
```
```{r}
source_rmd("~/Documents/clean.rmd")
```