如何将外部文件中的 R 片段代码包含到 Quarto 文档中

MYa*_*208 8 r knitr r-markdown quarto

想知道如何将外部文件中的代码片段包含到文档中。

  1. 但是,以下代码可以 knitr::read_chunk()正常工作,具体取决于

    knitr::read_chunk("Ch02.R")
    
    Run Code Online (Sandbox Code Playgroud)
  2. 以下使用代码的代码运行时没有任何错误,但无法按预期工作。

    #| eval: true
    #| output: false
    #| file: Ch02.R
    
    Run Code Online (Sandbox Code Playgroud)

中是否有任何替代方案knitr::read_chunk()

Qui*_*ten 7

选项 1:包括

如果您想要include其他代码片段,则只能在使用 include 时使用 qmd 文件:

计算仅包含 .qmd 文件中的工作

让我们创建一个名为create_dataframe.qmd的简单 qmd 文件,该文件向 mtcars 添加一列:

---
title: "Create dataframe"
---

```{r}
# Create data file 
mtcars$new_col = sample(c(0,1), nrow(mtcars), replace = TRUE)
```
Run Code Online (Sandbox Code Playgroud)

现在您可以将该文件包含在 main.qmd 文件中,如下所示:

---
title: "Document"
---

{{< include create_dataframe.qmd >}}

Let's check if extra columns is created:

```{r}
# View dataframe
head(mtcars)
```
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

如您所见,在 create_dataframe.qmd 文件中创建的列现在位于您的主文件中。


选项 2:分块文件

您也可以file像这样在块中选择。您必须确保它使用eval如下方式评估代码:

---
title: "Document"
---

Let's check if extra columns is created:

```{r}
#| echo: true
#| eval: true 
#| file: create_dataframe.R
```

```{r}
# View dataframe
head(mtcars)
```
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

正如您所看到的,新列也在数据框中。


Ran*_*lva -1

您可以使用该include指令。

例如,

{{< include Ch02.R >}}
Run Code Online (Sandbox Code Playgroud)

更多详细信息请访问https://quarto.org/docs/authoring/includes.html