3.4 Markdown から R script への変換

R Markdown から全ての R コードを取り出したい時は, knitr::purl() 関数を呼ぶことができます. 以下は purl.Rmd というファイル名の簡単な Rmd の例です.

---
title: R コードを取りだすために `purl()` を使いましょう
---

`knitr::purl()` 関数は **knitr** 文書から  R コードチャンクを取り出しコードを R スクリプトに保存します.

以下は簡単なチャンクです.

```{r, simple, echo=TRUE}
1 + 1
```

`r 2 * pi` のようなインライン R 式はデフォルトでは無視されます.

特定のコードチャンクを取り出してほしくない場合は, 以下の例のようにチャンクオプション `purl = FALSE` を設定できます. 

```{r, ignored, purl=FALSE}
x = rnorm(1000)
```

knitr::purl("purl.Rmd") を呼び出したら, 以下の R スクリプト (デフォルトのファイル名は purl.R) が生成されます.

## ---- simple, echo=TRUE------------------------------
1 + 1

上記の R スクリプトでは, チャンクオプションがコメントとして書かれています. 純粋な R コードが欲しい場合, knitr::purl()documentation = 0 という引数を与えて呼べば, 以下のような R スクリプトが生成されます.

1 + 1

テキストを全て残したいときは documentation = 2 引数を使えば, 以下のような R スクリプトを生成します.

#' ---
#' title: R コードを取りだすために `purl()` を使いましょう
#' ---
#' 
#' `knitr::purl()` 関数は **knitr** 文書から  R コードチャンクを取り出しコードを R スクリプトに保存します.
#' 
#' 以下は簡単なチャンクです.
#' 
## ---- simple, echo=TRUE------------------------------
1 + 1

#' 
#' `r 2 * pi` のようなインライン R 式はデフォルトでは無視されます.
#' 
#' 特定のコードチャンクを取り出してほしくない場合は, 以下の例のようにチャンクオプション `purl = FALSE` を設定できます. 
#' 

purl = FALSE というオプションのあるコードチャンクは R スクリプトから除外されることに注意してください.

インライン R コードはデフォルトでは無視されます. R スクリプトにインライン表現も含めたいなら, knitr::purl() を呼ぶ前に R のグローバルオプション options(knitr.purl.inline = TRUE) を設定する必要があります.