このページの内容を初めて読むときは、\(\ast\) が付いている項目は飛ばして良い(少し上級向けの内容)。
Rマークダウン (R Markdown、拡張子は.Rmd) ファイルはRStudio で編集する。編集したファイルをHTML(またはPDF) に出力するために、rmarkdown::render()
やknitr::knit()
を利用する。これらがインストール済みでない場合はインストールし、パッケージを読み込む。
if(!requireNamespace("rmarkdown")) install.packages("rmarkdown", dependencies = TRUE)
library("rmarkdown")
if(!requireNamespace("knitr")) install.packages("knitr", dependencies = TRUE)
library("knitr")
マークダウンファイル (r-markdown.Rmd) とそのファイルを元に生成されたhtmlファイル(インターネットブラウザで読んでいるこのファイル)(r-markdown.html) を見比べながら、RStudioでRマークダウンファイルを扱えるようにするのが今日の目標である。
このマークダウンをそのまま使うためには、担当教員が作ったスタイルシート(my-markdown.css)をプロジェクトのフォルダに保存する必要がある。 スタイル(表示されるページの見た目)をカスタマイズしたいときは、このファイルを変更すればよい。デフォルトのスタイルのままでいいとき(あまり良くないと思うが)は、ヘッダの’css’オプションの指定をやめる(このRmdファイル [htmlではない] のヘッダ部分にある “css: my-markdown.css” の行を削除する)。
文章は、いつもどおり書けばよい。 文章の一部をイタリック(斜字体)にしたいときは、イタリックにしたい部分を * または _ で挟むと、this is italic あるいは this is also italic となる(日本語は斜字体にしない)。 太字は、**(*を2つ) または __(_ を2つ)で挟むと、ここが太字 または ここも太字 となる。 太字のイタリックは、*** (*を3つ)または ___(_を3つ)で挟むと、here is bold italic または here is also bold italic となる。
改行するときは、文章の間を1行以上空ける。
箇条書きは、* または _ を利用し、
あるいは、
のようにできる。* や - の後には半角スペースを挿入する。箇条書きを入れ子にするとき、字下げは Tab で行う
番号付きの箇条書きは、数字で作れる。
のようにする。
ヘディング (heading) は、“#” (ハッシュ記号) で作れる。# の数が少ないほど、上位のヘディングになる。
LaTeX と同じように数式を書くこともできる。 文章中と同じ行に数式を書きたいときは、$
で挟む。 たとえば、\(\bar{x} = \sum_{i=1}^n x_i / n\) と、する。 数式を独立したブロックとして書きたいときは、$$
で挟み、 \[\sigma^2 = \frac{\sum_{i=1}^n (x_i - \mu)^2}{n}\] のようにする。
Rのコードは、コードチャンクと呼ばれる部分に書き込む。 コードチャンクは、たとえば以下のように書ける。
Rコードチャンクの始めには、3つの「`」の後に{r}をつける。 rとスペースの後({}の中)には、チャンクの名前を付ける。 好きな名前を付けてよいが、他のチャンクとまったく同じ名前は付けられない。 チャンクの終わりには3つの「`」を書く。
文章中にRコードを書きたいときはmean(x)
のように、Rのコマンドを`の間に書く。 関数を実行(評価, evaluate)した後の結果を文章中に入れたいときは、「$a$ の平均値は ` r mean(a) ` です」のように“r”を入れて書くと、「\(a\) の平均値は5.5 です」となる。つまり、mean(a) をRが計算し、その結果を文章の中に入れてくれる。この方法を使えば、文章と別にRのコマンドを実行しなくても、Rの実行結果を表示することができる。
図を含めた文章も作れる。
何もオプションを指定しない状態では、チャンクは1行ずつ評価され、結果も順番に次々出力される。 たとえば、
## [1] 0.9857235
## [1] 0.9716508
チャンクの最後まで評価してからまとめて結果表示したいときは、チャンクオプションresults を’hold’にする。 オプションは、チャンク名の後に「,(comma)」を打ち、その後に書く。 例えば、``` {r example-option, results=‘hold’} とチャンクの冒頭に書くと、
## [1] 0.9857235
## [1] 0.9716508
となる。
チャンクオプションについてより詳しくは ココ などを参照されたい。
また、Rマークダウン全般(特に、RStudioを使う場合)については、ココ を参照。
Rマークダウンのチートシート(PDFファイル)もあるので、ダウンロードして持っておくと便利である。RとRStudioに関連するチートシートはココ にまとめて置いてある。
R Markdown を HTML ファイルに出力するときは、rmarkdown::render()
を使う。
HTML ファイルに変換する際のオプションは、ヘッダ部分で指定する。このRmdファイル(HTMLファイルではない。つまり、ウェブブラウザで見ている場合の表示されていない) では、第1行から第14行までがヘッダであり、そのうち、“html_document:” のブロックでHTML出力のためのオプションが指定されている。例えば、“toc: yes” は目次 (table of contents; toc) を表示するという指定である。非表示にするには “toc: no” とする。
試しに、“r-markdown.Rmd” を “r-markdown.html” に変換してみよう。 Rmd ファイルをRStudio で編集している場合、コード編集画面の上にある “Knit” ボタン(毛糸と棒針のマーク)を押してもHTMLファイルを作れる。
出力されたHTMLファイルは(他のディレクトリを指定しない限り)現在の作業ディレクトリ(プロジェクトのフォルダ)に保存される。 出来上がったHTMLファイルをブラウザで開いて確認してみよう。
コマンドを使ってHTMLファイルを作るときは、rmarkdown::render()
を使う。
render("r-markdown.Rmd", output_format = "html_document",
output_file = "r-markdown.html", run_pandoc = FALSE)
run_pandoc = FALSE を指定しないと日本語が文字化けするので注意が必要である(ボタンを押して変換するときは心配しなくてよい。今はボタンで変換できればよい)。