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)
を設定する必要があります.