15.3 Read multiple code chunks from an external script

In Section 15.2, we introduced a way to read code into a single code chunk. In this section, we introduce one method to read multiple code chunks from an external script. The key is that you need to label the code in the script, and you can use the same labels in the code chunks in your R Markdown document, so the code in the external script can be mapped to the code chunks via the function knitr::read_chunk(). To label a block of code in a script, you write the label after ## ---- (optionally, you can add a series of dashes to the end of this line). One script can contain multiple labeled code blocks, e.g.,

## ---- test-a --------
1 + 1

## ---- test-b --------
if (TRUE) {
  plot(cars)
}

We assume that the filename of the above script is test.R. In the R Markdown document, we can read it via knitr::read_chunk(), and use the code in code chunks with the labels, e.g.,

Read an external script:

```{r, include=FALSE, cache=FALSE}
knitr::read_chunk('test.R')
```

Now we can use the code, e.g.,

```{r, test-a, echo=FALSE}
```

```{r, test-b, fig.height=4}
```

Note that we use knitr::read_chunk() mainly for its side-effect, so please make sure the code chunk in which we call this function is not cached (see Section 9.3 for the explanation).

Like methods introduced in Section 15.1 and Section 15.2, this method also gives you the flexibility of developing code in a separate environment.