まず、マークダウン全体のオプション(グローバルチャンクオプション)を指定する。
PDFに出力する(LaTeX 使う)場合は、グラフィックデバイスに cairo
を利用するが、HTML の場合には cairo
を使いたくないので、knitr::is_latex_output()
を利用して場合分けする。 以下のコードチャンクは、オプションに
include = FALSE
がついているので、出力されたPDFやHTML
では非表示になる。
このチャンク(グローバルオプション)は常にYAMLヘッダのすぐ下に書くべきである。
tidyverse
パッケージを読み込む。パッケージのインストールは一度すれば済むが、library()
を使ったパッケージの読み込みは、Rを起動するたびに行う必要がある。
library(tidyverse)
## 図のなかで日本語を使えるようにする
## フォントの設定はお好みで
## (Unix/Linux ではIPAexフォントのインストールが必要かも)
library(fontregisterer)
if (.Platform$OS.type == "windows") { # Windows
my_font <- "Yu Gothic"
} else if (capabilities("aqua")) { # macOS
my_font <- "Hiragino Sans"
} else { # Unix/Linux
my_font <- "IPAexGothic"
}
theme_set(theme_gray(base_size = 9,
base_family = my_font))
マークダウンファイル (r-markdown.Rmd) とそのファイルを元に生成されたPDFファイル (PDFを開いているならそのファイル)(r-markdown.pdf)と htmlファイル(インターネットブラウザで読んでいるならそのファイル)(r-markdown.html) を見比べながら、RStudioでRマークダウンファイルを扱えるようにするのが今日の目標である。
このマークダウンをそのまま使うためには、担当教員が作ったスタイルシート(my-markdown.css)をプロジェクトのフォルダに保存する必要がある。
スタイル(表示されるページの見た目)をカスタマイズしたいときは、このファイルを変更すればよい。デフォルトのスタイルのままで良いとき(あまり良くないと思うが)は、ヘッダの’css’オプションの指定をやめる(このRmdファイル
[htmlではない] のYAMLヘッダ部分にある 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 で行う
番号付きの箇条書きは、数字で作れる。
のようにする。入力する際にすべて「1.」にしても、自動的に1, 2, 3, … とうい番号が割り当てられる。全部1にしておくと、後から項目の並べ替えができるので楽である。(1でなくても並べ替えられるが、数字の意味が不明になる。)
ヘディング (heading) は、“#” (ハッシュ記号) で作れる。 論文・レポートを書くときは、ヘディングを利用して文章を構造化する。 # の数が少ないほど、上位のヘディングになる。Rコードのコメントと同じ記号だが、その役割はまったく異なるので誤解しなように注意されたい。
例を以下に示す。
LaTeX
と同じように数式を書くこともできる。
文章中と同じ行に数式を書きたいときは、$
で挟む。
たとえば、\(\bar{x} = \sum_{i=1}^n x_i /
n\) と、する。
数式を独立したブロックとして書きたいときは、$$
で挟み、
\[
\sigma^2 = \frac{\sum_{i=1}^n (x_i - \mu)^2}{n}
\] のようにする。
Rのコードは、コードチャンクと呼ばれる部分に書き込む。 コードチャンクは、たとえば以下のように書ける。
a <- 1:10
b <- -1:-10
Rコードチャンクの始めには、3つの「`」の後に{r}をつける。 rとスペースの後({}の中)には、チャンクの名前を付ける。 好きな名前を付けてよいが、他のチャンクとまったく同じ名前は付けられない(つまり、各チャンクが異なる名前をもつ必要がある)。 チャンクの終わりには3つの「`」を書く。 RStudioで開いたRマークダウンファイル内でコードチャンクを作るには、次のショートカットキーを使った方がよい。
cmmandd
+ option
+ I
または control
+ option
+ I
Ctrl
+ Alt
+ I
I は Insert (チャンクを「挿入する」)の頭文字である。macOS
文章中にRコードを書きたいときは mean(x)
のように、Rのコマンドを`の間に書く。 関数を実行(評価,
evaluate)した後の結果を文章中に入れたいときは、「$a$ の平均値は ` r
mean(a) ` です」のように “r” を入れて書くと、「\(a\) の平均値は5.5
です」となる。つまり、mean(a)
というコマンド
をRが実行し、その結果を文章の中に入れてくれる。この方法を使えば、文章と別にRのコマンドを実行しなくても、Rの実行結果を表示することができる。
図を含めた文章も作れる。チャンクオプション fig.cap
で図のキャプションが指定できる。
p <- tibble(x = rnorm(100, mean = 0, sd = 1)) %>%
ggplot(aes(x = x)) +
geom_histogram(binwidth = 1, color = "black", fill = "tomato") +
labs(y = "度数", title = "ヒストグラム")
plot(p)
何もオプションを指定しない状態では、チャンクは1行ずつ評価され、結果も順番に次々出力される。 たとえば、
sd(a)
## [1] 3.02765
var(a)
## [1] 9.166667
チャンクの最後まで評価してからまとめて結果表示したいときは、チャンクオプションresults
を’hold’にする。
オプションは、チャンク名の後に「,(comma)」を打ち、その後に書く。
例えば、{r example-option, results = 'hold'}
とチャンクの冒頭に書くと、
sd(a)
var(a)
## [1] 3.02765
## [1] 9.166667
となる。
チャンクオプションについてより詳しくは ココ などを参照されたい。
また、Rマークダウン全般(特に、RStudioを使う場合)については、ココ を参照。
Rマークダウンのチートシート(PDFファイル)