16.2 外部スクリプトをチャンク内で読み込む

16.1節で紹介した source() の方法には欠点があります. それはデフォルトではソースコードを見ることができないという点です. source(..., echo = TRUE) を使うことはできますが, ソースコードのシンタックスがきちんとハイライトされません. 加えて16.1節で言及したように, source()local 引数について注意を払う必要があります. この節ではこういった問題のない代わりになる方法を紹介します.

1つでも外部スクリプトがあれば, 基本的にはそれを読み込んで中身を, チャンクの file オプション から渡すことができます. file オプションはファイルパスの文字列ベクトルをとります. 以下に少しだけ例をお見せします.

ある外部ファイルを読み込める状態とします.

````md
```{r, file='your-script.R'}
```
````
  • 好きな数だけスクリプトを読み込むことができます:

    ```{r, file=c('one.R', 'two.R')}
    ```

他の言語のスクリプトも読み込めます. R Markdown で他の言語を使う方法は15章を確認してください. 以下に, もう少しだけ R 以外のコードの例をお見せします.

  • Python スクリプトを読み込む.

    ```{python, file='script.py'}
    ```
  • C++ ファイルを読み込む:

    ```{Rcpp, file='source.cpp'}
    ```

file オプションがあれば, お気に入りのエディタ使って複雑なコードを開発した上で, それを R Markdown 文書のコードチャンクに読み込ませるということができます.