【Quarto】チャンクオプションまとめてみた【R Markdown】

R
Quarto
R Markdown
備忘録

チャンクオプションは忘れやすい!

公開

2024年5月9日

最終更新

2024年5月31日

はじめに

どうも Quarto ユーザーです。普段チャンクオプションをよく忘れるので、備忘録も兼ねてまとめます。おそらく R Markdown も同じです。

直感的な分かりやすさ重視です。

私が普段使うものに偏っているかもしれませんが、ご了承ください。

前提

Quarto でも R Markdown と同じようなチャンクオプションの書き方ができるのですが、ここでは Quarto 独自の書き方で進めます。

理由は単純に私が好んで使っているからです。

R Markdown の書き方

R Markdown
```{r cars, echo=TRUE}
plot(cars)
```

cars の部分がチャンクのラベル(名前)、echo=TRUE の部分がチャンクオプションです。

Quarto の書き方

Quarto
```{r}
#| label: fig-cars
#| echo: true

plot(cars)
```

チャンク内で #| の後に書きます。ちなみに、こちらは TRUE や FALSE が小文字で大丈夫です。

チャンクオプション

共通

R Markdown と Quarto で共通のオプションをざっくり表にしました。 これを使えば普段は問題なさそうというものをピックアップしています。

チャンクオプションまとめ
オプション デフォルト 効果
echo TRUE
  • コードを出力に含めるか否か
  • FALSE にすると、実行結果のみが表示される
include TRUE
  • コード、結果を出力に含めるか否か
  • FALSE にすると、何も表示されない
  • パッケージの読み込みなど重要じゃない箇所で重宝
warning TRUE
  • 警告を出力に表示するか否か
  • 基本 FALSE が多い
  • グローバルに指定することが多い(後述
message TRUE
  • メッセージを出力に表示するか否か
  • 結果に付随してくる文を消すために FALSE が多い
  • グローバルに指定することが多い(後述
cache FALSE
  • 実行結果をキャッシュするか否か
  • TRUE にすると、結果が保存され2回目以降の出力が高速化
  • 重い作業でコンパイルに時間がかかるときに使っている
eval TRUE
  • コードを実際に評価するか否か
  • コードを見せたいだけのときに FALSE にすると便利

違うやつ

よく使うものの中でもR Markdown と Quarto で異なるものをピックアップします。

  1. fig 系

    • R Markdown では fig.cap

    • Quarto では fig-cap

    • これ以外にも R Markdown はピリオドで、Quarto ではハイフンのものは多々あります。

  2. チャンクラベル1

    • R Markdown は {r hogehoge}2

    • Quarto はコード内で #| label: fig-hogehoge

      • ご覧の通り、Quarto の方は fig- を前に付ける必要があります3

グローバルオプション

全部の警告やメッセージを消したい、なんてこともよくあると思います。

R Markdown と Quarto でそれぞれやり方がありますのでご紹介します。

R Markdown

RStudio であれば新しい R Markdown ファイルを開くと既に出ていますが、以下の関数を使用します。

R
knitr::opts_chunk$set(echo = TRUE)

括弧内に、カンマで区切りながらオプションを TRUE, FALSE などで指定していきます。echo はデフォルトで TRUE なので、これだけなら無くても大丈夫です。笑

例えば、全てのコードについてコードは出力せず結果だけ出力し、警告やメッセージは非表示にするためには次のようにします。

R
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)

Quarto

Quarto では YAML ヘッダーで設定が可能です。YAML ヘッダーは Markdown ファイルを開いたときの最上部に出てくる --- で囲まれた部分です。

次のように設定します。

YAML ヘッダー
---
title: "Untitled"
format: html
execute: 
  echo: false
  warning: false
  message: false
---

execute: で指定することができます。

おわりに

今回は私がよく使うチャンクオプションを中心にご紹介しました。

今後いろいろ使いながらアップデートしていきたいと思います。

ご参考になれば幸いです。

  1. 相互参照のために使うので、必ずつけなければならないものではありません。相互参照についてはこちら↩︎

  2. スペースを空けてチャンクラベルを入力します。↩︎

  3. 表なら tbl-hogehoge とします。↩︎