24 Quarto入門
24.1 Quartoとは
以下のように、QuartoとR Markdownは同じやり方でHTML/PDF/Wordファイルを生成する。
- R Markdown
-
.Rmd
\(\rightarrow\) knitr \(\rightarrow\).md
\(\rightarrow\) pandoc \(\rightarrow\) HTML/PDF/Word…
-
- Quarto
-
.qmd
\(\rightarrow\) (knitr / Jupyter / Observable) \(\rightarrow\).md
\(\rightarrow\) pandoc \(\rightarrow\) HTML/PDF/Word…
-
- R Markdownの場合、コードがRに限定されている(むろん、今はpythonなども使用可能)。
- 一方、Quartoはマルチリンガル(R、Pyhton、Juliaなど)
- R Markdownのエンジンはknitr
- 一方、Quartoはknitr、Jupyter、Observableが使用可能であり、今後も追加予定
- 文書作成のための{rmarkdown}、ホームページ作成のための{blogdown}、スライド作成のための{xaringan}など
- Quartoはこれらを全て一つに統合
- Quarto Extensionという拡張機能を追加する形式
- QuartoはRStudio以外にもVS Code、Jupyterなどでも使用可能
- QuartoはR Markdownの上位互換でもなく、R Markdownを代替するものでもない(参考)。
- つまり、既存のR Markdownを問題なく使っているのであれば、Quartoへの移行は不要
- 現在のところ、QuartoはR Markdown生態系を一つに統合したものに近く、文法などもほぼ同じであるため、移行のために新しい事をゼロベースから勉強する必要はほぼない
24.2 セットアップ
Quartoのインストール
-
https://quarto.org/docs/get-started/
- 自分のOSに合わせてダウンロード&インストール
{quarto}のインストール(インストールしておくだけで良い)
24.3 簡単な使い方
24.3.1 とりあえずRender
- R Markdownと同じ感覚で使用可能
- File > New File > Quarto Document …
- RStudioが最新版でない場合、アップデートする
- R Markdownの「Knit」はQuartoだと「Render」
- Quartoの場合、Knit以外にもJupyterなどのエンジンも使用可能であるため、名称がRender
- Knitボタンと同じ位置であり、ショートカットキーは同じく「Cmd + Shift + K (macOS)」、または「Ctrl + Shift + K (Windows)」
24.3.2 チャンクオプションの付け方
現時点においてR Markdownと同じ書き方でも問題ない。
```{r fig-scatter1, fig.height = 5, fig.width = 7, fig.cap = "図の例", cache = TRUE}
%>%
iris mutate(Species2 = recode(Species,
"setosa" = "セトナ",
"versicolor" = "バーシクル",
"virginica" = "バージニカ")) %>%
ggplot() +
geom_point(aes(x = Sepal.Length, y = Sepal.Width, color = Species2)) +
labs(x = "萼片の長さ (cm)", y = "萼片の幅 (cm)", color = "品種")
```
Quarto特有の書き方としては、チャンクオプションを{r}
内に書かず、チャンク内に#|
で書く方法がある。#|
とオプションの間には半角スペースを入れること。
```{r}
#| label: fig-scatter1
#| fig-cap: "図の例"
#| fig-height: 5
#| fig-width: 7
#| fig-align: "center"
#| cache: true
%>%
iris mutate(Species2 = recode(Species,
"setosa" = "セトナ",
"versicolor" = "バーシクル",
"virginica" = "バージニカ")) %>%
ggplot() +
geom_point(aes(x = Sepal.Length, y = Sepal.Width, color = Species2)) +
labs(x = "萼片の長さ (cm)", y = "萼片の幅 (cm)", color = "品種")
```
注意すべき点としては
- 一部のオプションの仮引数名が異なる。
- 例)
fig.width
(RMarkdown)とfig-width
(Quarto)など
- 例)
-
TRUE
とFALSE
の代わりにtrue
とfalse
を使用(YAMLと同じ書き方) -
仮引数 = 実引数
でなく、仮引数: 実引数
で書く
24.3.3 相互参照について
以下の @fig-scatter1 は萼片の長さと幅を品種ごとに分けて示した散布図である。
```{r}
#| label: fig-scatter1
#| fig-cap: "萼片の長さと幅の関係(品種別)"
%>%
iris mutate(Species2 = recode(Species,
"setosa" = "セトナ",
"versicolor" = "バーシクル",
"virginica" = "バージニカ")) %>%
ggplot() +
geom_point(aes(x = Sepal.Length, y = Sepal.Width, color = Species2)) +
labs(x = "萼片の長さ (cm)", y = "萼片の幅 (cm)", color = "品種")
```
- 章、図、表の場合、ラベルは
sec-
、fig-
、tbl-
で始まる必要がある - 相互参照の箇所は
@ラベル名
と書く。念の為に、前後に半角スペースを入れておく。- R Markdownの場合:
図\@ref(fig-scatter1)
- Quartoの場合:
@fig-scatter1
- デフォルトのままだと「Figure X」と出力される。「図 X」の形式にしたい場合は言語を指定する必要がある(YAMLヘッダーに
lang: ja
を追加するか、language:
で別途定義する)。
- デフォルトのままだと「Figure X」と出力される。「図 X」の形式にしたい場合は言語を指定する必要がある(YAMLヘッダーに
- R Markdownの場合:
24.3.4 コールアウト
Input:
:::{.callout-note}## Rはみんなの友達!
末永くよろしくね!
:::
:::{.callout-warning}## Rはみんなの友達!
末永くよろしくね!
:::
:::{.callout-important}## Rはみんなの友達!
末永くよろしくね!
:::
:::{.callout-tip}## Rはみんなの友達!
末永くよろしくね!
:::
:::{.callout-caution}## Rはみんなの友達!
末永くよろしくね! :::
Output:
Rはみんなの友達!
末永くよろしくね!
Rはみんなの友達!
末永くよろしくね!
Rはみんなの友達!
末永くよろしくね!
Rはみんなの友達!
末永くよろしくね!
Rはみんなの友達!
末永くよろしくね!
Input:
:::{.callout-note collapse="true"}## Rはみんなの友達!(クリック)
末永くよろしくね! :::
Output:
Rはみんなの友達!
末永くよろしくね!
24.3.5 段組み
段組みについて
24.3.6 図表について
- 大きさの調整
- キャプション
24.4 Quartoを知り尽くす
Quarto公式HP:https://quarto.org/docs/guide/
rstudio::conf 2022 Workshopの資料:https://rstudio-conf-2022.github.io/get-started-quarto/
私たちのR - 24 Quarto入門 私たちのR: ベストプラクティスの探求 私たちのR: ベストプラクティスの探求 私たちのR