11.7 コード, テキスト出力, メッセージ, グラフを隠す

デフォルトでは, knitr はコードチャンクから, ソースコード・テキスト出力・メッセージ・警告・エラー・グラフといった可能な全ての出力を表示します. 個別に対応するコードチャンクを使って, 隠すことができます.

ソースコードを隠す.

```{r, echo=FALSE}
1 + 1
```

テキスト出力を隠す. `results = FALSE` を使うのも可.

```{r, results='hide'}
print("テキスト出力はあなたには見えない.")
```

メッセージを隠す.

```{r, message=FALSE}
message("このメッセージはあなたには見えない.")
```

警告メッセージを隠す.

```{r, warning=FALSE}
# 警告を発生させるが抑制される
1:2 + 1:3
```

グラフを隠す.

```{r, fig.show='hide'}
plot(cars)
```

上記のチャンクではグラフが生成されることに注意してください. 出力に表示しなくするだけです.

knitr に関するよくある質問の1つは, パッケージ読み込み時のメッセージを隠す方法です. 例えば library(tidyverse)library(ggplot2) を使ったとき, いくつかの読み込みメッセージが現れます. このようなメッセージはチャンクオプション message = FALSE で抑制することもできます.

インデックスによってこれらの要素を表示したり隠したり選択することも出来ます. 以下の例では, ソースコードの4つ目と5つ目の式を表示し, 最初の2つのメッセージと2つ目と3つ目の警告を隠しています. コメントも式1つとして数えられることに注意してください.

```{r, echo=c(4, 5), message=c(1, 2), warning=2:3}
# 乱数 N(0, 1) を生成する方法の1つ
x <- qnorm(runif(10))
# だが rnorm() を使うほうが実用的
x <- rnorm(10)
x

for (i in 1:5) message('ここにメッセージ ', i)

for (i in 1:5) warning('ここにメッセージ ', i)
```

負のインデックスを使用することもできます. 例えば echo = -2 は出力部のソースコードの2つ目の式を除外します.

同様に, fig.keep オプションに対してインデックスを使うことでどのグラフを表示あるいは隠すかを選ぶこともできます. 例えば fig.keep = 1:2 は最初の2つのグラフを残すことを意味します. このオプションにはいくつかのショートカットがあります. fig.keep = "first" は最初のグラフのみを残し, fig.keep = "last" は最後のグラフのみを残し, fig.keep = "none" は全てのグラフを破棄します. 2つのオプション fig.keep = "none"fig.show = "hide" は異なることに注意してください. 前者はそもそも画像ファイルを生成しませんが, 後者はグラフを生成し隠すだけです.

html_document 出力のソースコードブロックに対して, echo = FALSE で完全に省略したくなければ, 7.5節をご覧になれば, ページ上でブロックを折りたたみ, ユーザーが展開ボタンを押して展開させるようにする方法が書いてあります.