3.7 .qmd
: Quartoドキュメント
QuartoはR言語用のマークダウン記法をHTMLやPDFなどにレンダリングできるファイル形式である. マークダウン記法についてはデータサイエンスとは本質的に関連のないテーマのため詳細な説明を省くが,興味のある人は調べてみて欲しい. 例えば,Quarto記法については以下のURLに記法の一覧が紹介されているので参照されたい. (https://quarto.org/docs/authoring/markdown-basics.html#equations)
3.7.1 qmdファイルの作成
R Scriptを作成した手順と同様に,Quarto Document をクリックすると新規にqmdファイルを作成できる.

すると,次のように初期設定画面が表示されるので,Title, Authorを適宜入力する.本講義ではHTML形式での出力を基本とする.

左上に新規のqmdファイルの編集画面が表示されたら,上部の---
で囲まれた部分(YAMLヘッダーと呼ぶ)を以下のように変更する.
これは,HTMLファイルをレンダリングする際に利用するTexエンジン(数式を綺麗に出力する仕組み)をkatexという種類のエンジンに
変更するように指示をしている.
もともとはこのようになっているが,
---
title: "Title desu"
author: "watashi desu"
format: html:
editor: visual
---
以下のようにformat: html
の行を変更する.
---
title: "Title desu"
author: "watashi desu"
format:
html:
toc: true
html-math-method: katex
editor: visual
---
3.7.2 HTMLファイルのレンダリング
qmdファイルの編集からレンダリングまでの一連の流れを紹介する. 上記のようにYAMLヘッダーを編集したのち,qmdファイルの最後から先ほどR Scriptで実行したコードを埋め込もう.
3.7.2.1 チャンクの挿入
カーソルをファイルの一番最後に移動して,編集画面の右上にある+cマークを押すとRのコードを実行できる領域が挿入される. この部分をチャンクと呼ぶ.

チャンクの挿入にはショートカットコマンドも用意されておりcommand + shift + I
と入力すれば良い(Windowsはctrl + shift + I
).

チャンク内にプログラムを記述して,チャンク右上の▷マークを押せばRのプログラムを実行できる.
次にこのチャンク内に以下のコードを貼り付けよう.
train <- iris[,-5]
centers <- 3
result <- kmeans(x = train, centers=centers)
iris$estimated_cluster <- as.character(result$cluster)
ggplot(iris) +
geom_point(
aes(
x = Sepal.Length,
y = Petal.Length,
group = estimated_cluster,
color = estimated_cluster
)
)
3.7.2.2 数式(Tex)の挿入
qmdファイルないでは,Tex記法を利用することで数式を綺麗に書くことができる.
文章内では$
で囲めばよい.例えばf(x) = x^2という文字列をTex記法で記述すると$f(x) = x^2$
とすればよく,
実際には\(f(x) = x^2\)と表示される.
次に,文章中ではなく数式を切り出して表示したい場合は$$
で囲む.例えば
$$
e^{i \theta} = \cos \theta + i \sin \theta
$$
とすれば良い.これは実際には以下のように表示される.
\[ e^{i \theta} = \cos \theta + i \sin \theta \]
3.7.3 おまけ:katex
katexはウェブ上で高速に処理されるTexエンジンである.HTMLを表示する際に,他のTexエンジンでは ページを読み込んでからしばらくして数式が表示されることがあるが,katexではページの読み込みから表示までが早く ストレスのない表示を実現してくれる.
katexで扱える記法については以下を参照されたい.
- サポートしている関数:https://katex.org/docs/supported.html
- サポートしている記法:https://katex.org/docs/support_table.html