このページの内容を初めて読むときは、$\ast$ が付いている項目は飛ばして良い（少し上級向けの内容）。

# 準備

Rマークダウン (R Markdown、拡張子は.Rmd) ファイルはRStudio で編集する。編集したファイルをHTML（またはPDF） に出力するために、`rmarkdown::render()` や`knitr::knit()` を利用する。これらがインストール済みでない場合はインストールし、パッケージを読み込む。
```{r rmarkdown-package, message=FALSE}
if(!requireNamespace("rmarkdown")) install.packages("rmarkdown", dependencies = TRUE) 
library("rmarkdown")
if(!requireNamespace("knitr")) install.packages("knitr", dependencies = TRUE) 
library("knitr")
```

```{r global_option, include = FALSE}
## まず、マークダウン全体のオプションを指定する
## "include = FALSE" なので、このチャンクは出力に表示されない
knitr::opts_chunk$set(warning = FALSE, echo = TRUE, message = TRUE,
                      fig.width = 4, fig.height = 3)
```

<br>

# Rマークダウンの使い方

マークダウンファイル ([r-markdown.Rmd](r-markdown.Rmd)) とそのファイルを元に生成されたhtmlファイル（インターネットブラウザで読んでいるこのファイル）（[r-markdown.html](r-markdown.html)) を見比べながら、RStudioでRマークダウンファイルを扱えるようにするのが今日の目標である。

このマークダウンをそのまま使うためには、担当教員が作ったスタイルシート（[my-markdown.css](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行以上空ける。

箇条書きは、\* または \_ を利用し、

 * 項目1
 * 項目2
    * 項目2-1
    * 項目2-2

あるいは、

- 項目1
    - 項目1-1
    - 項目1-2
- 項目2

のようにできる。\* や \- の後には半角スペースを挿入する。箇条書きを入れ子にするとき、字下げは Tab で行う

番号付きの箇条書きは、数字で作れる。

1. First item
2. Second item
    1. What?
    2. How?
3. Third item

のようにする。

ヘディング (heading) は、"\#" （ハッシュ記号） で作れる。\# の数が少ないほど、上位のヘディングになる。

# ハッシュ1つのヘディング
## ハッシュ2つのヘディング
### ハッシュ3つヘディング
#### ハッシュ4つのヘディング





また、リンクを貼ることもできる：[矢内のウェブサイト](http://www.yukiyanai.com/)。

画像も貼れる：![いらすとやの猫](animal_chara_computer_neko.png)

（出典：[いらすとや](https://www.irasutoya.com/2018/10/blog-post_67.html)）


### $\ast$ 数式の書き方

LaTeX と同じように数式を書くこともできる。
文章中と同じ行に数式を書きたいときは、`$`で挟む。
たとえば、$\bar{x} = \sum_{i=1}^n x_i / n$ と、する。
数式を独立したブロックとして書きたいときは、`$$`で挟み、
$$\sigma^2 = \frac{\sum_{i=1}^n (x_i - \mu)^2}{n}$$
のようにする。

## コードチャンクの書き方

Rのコードは、コードチャンクと呼ばれる部分に書き込む。
コードチャンクは、たとえば以下のように書ける。
```{r example-chunk}
a <- 1:10
b <- -1:-10
```

Rコードチャンクの始めには、3つの「\`」の後に{r}をつける。
rとスペースの後（{}の中）には、チャンクの名前を付ける。
好きな名前を付けてよいが、他のチャンクとまったく同じ名前は付けられない。
チャンクの終わりには3つの「\`」を書く。

文章中にRコードを書きたいときは`mean(x)` のように、Rのコマンドを\`の間に書く。
関数を実行（評価, evaluate）した後の結果を文章中に入れたいときは、「\$a\$ の平均値は \` r mean(a) \` です」のように"r"を入れて書くと、「$a$ の平均値は`r mean(a)` です」となる。つまり、mean(a) をRが計算し、その結果を文章の中に入れてくれる。この方法を使えば、文章と別にRのコマンドを実行しなくても、Rの実行結果を表示することができる。

図を含めた文章も作れる。
```{r example-plot4html}
a <- rnorm(100, mean = 0, sd = 1)
hist(a, col = "gray",
     ylab = "度数", main = "aのヒストグラム")
```

何もオプションを指定しない状態では、チャンクは1行ずつ評価され、結果も順番に次々出力される。
たとえば、
```{r sd-and-var}
sd(a)
var(a)
```

チャンクの最後まで評価してからまとめて結果表示したいときは、チャンクオプション**results** を'hold'にする。
オプションは、チャンク名の後に「,（comma）」を打ち、その後に書く。
例えば、\`\`\` {r example-option, results='hold'} とチャンクの冒頭に書くと、
```{r example-option, results = 'hold'}
sd(a)
var(a)
```
となる。

チャンクオプションについてより詳しくは [ココ](http://d.hatena.ne.jp/teramonagi/20130615/1371303616) などを参照されたい。

また、Rマークダウン全般（特に、RStudioを使う場合）については、[ココ](https://kazutan.github.io/JSSP2018_spring/intro_rstudio.html) を参照。

Rマークダウンのチートシート（[PDFファイル](https://github.com/rstudio/cheatsheets/raw/master/translations/japanese/rmarkdown-2.0_jp.pdf)）もあるので、ダウンロードして持っておくと便利である。RとRStudioに関連するチートシートは[ココ](https://www.rstudio.com/resources/cheatsheets/) にまとめて置いてある。

<br>


## R MarkdownファイルをHTMLファイルに出力する

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()` を使う。
```{r render-html, eval=FALSE}
render("r-markdown.Rmd", output_format = "html_document",
       output_file = "r-markdown.html", run_pandoc = FALSE)
```
**run_pandoc = FALSE** を指定しないと日本語が文字化けするので注意が必要である（ボタンを押して変換するときは心配しなくてよい。今はボタンで変換できればよい）。
<br>

<br>
<br>
<div align="right">
[授業の内容に戻る](../)
</div>
