R markdownチートシート

# 前置き
- ~~[公式のチートシート](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf)~~を参考に自分が分かりやすくするために作成する
- [最新版のチートシート](https://www.rstudio.com/wp-content/uploads/2016/03/rmarkdown-cheatsheet-2.0.pdf)

# 環境
- R3.3.2
- Rstudio Server1.0.136(64bit)

# 実行方法のショートカット
- 実行方法は主に以下2種類

| 実行方法 | ショートカット |
|:-----------|:-----------|
| Select Line | Ctrl + Enter |
| Current Chunk | Ctrl + Shift + Enter |

# YAML headers
- RmarkdownではドキュメントをYAML形式で設定することができる
- 新規でR Notebookを開くと初期設定でドキュメント上部に以下のように記載されている
- PreviewにてHTML出力すると、ドキュメント上部にタイトルが表示される
- 注意点として、セミコロンの後に半角スペースを空けないとエラーとなる

```r
---
title: "R Notebook"
output: html_notebook
---
```
- その他以下のような設定ができる

| 設定方法 | 説明 |
|:----------|:----------|
| title: "title" | タイトル |
| author: "name" | 著者 |
| date: "yyyy-mm-dd" | 日付 <br> インラインコードを使うと便利 <br> date: "`r format(Sys.time(), '%Y/%m/%d')```" |
| output: html_document | html file |
| output: pdf_document | pdf |
| output: word_document | word |
| output: ioslides_document | ioslides slideshow |
| output: slidy_presentation | slidy HTML slides |
| output: beamer_presentation | Beamer pdf slides (requires Tex) |
| output: html_notebook | html_documentが改良されたようなもの <br> 詳しくは[本家](http://rmarkdown.rstudio.com/r_notebook_format.html)にて |
| output: flexdashboard | htmlwidgetsをベースとしたダッシュボードを作成できる |
| params: | ドキュメント内でレンダリング可能なパラメータを設定できる  |

## paramsの使い方
- YAML headers

```r
---
params: 
  client: "filename.csv"
---
```
- Rコードの呼び出し方

```{r plot, echo=FALSE, warning=FALSE}
df <- read.csv(params$client)
```

## ****_document利用時に利用可能なもの
- 利用方法例

```r
---
output:
    html_document:
        toc:true
        toc_depth:3
---
```
| 設定方法 | 説明 |
|:----------|:----------|
| toc:[true/false]  | 目次を作成するかどうか |
| toc_depth:[1~]  | 目次の深さ |
| toc_float:[true/false]  | 目次を浮かせる |
| number_sections:[true/false]  | セクション番号 |
| theme: | いろいろなテーマがある。 <br> "default", "cerulean", "journal", "flatly", "readable", "spacelab", "united", "cosmo", "lumen",  "paper", "sandstone", "simplex", "yeti" |
| highlight: | 強調表示スタイル <br> "default", "tango", "pygments", "kate",  "monochrome", "espresso", "zenburn", "haddock", "textmate" |
| code_folding: [hide/show]  | コードの折り畳みの初期設定 |

### toc_float利用時に利用可能なもの
- 利用方法例

```r
---
output:
    html_document:
        toc: true
        toc_float:
            collapsed: true
---
```
| 設定方法 | 説明 |
|:----------|:----------|
| collapsed:[true/false]  | 必要に応じて目次が自動的にインライン展開する |
| smooth_scroll:[true/false]  | 目次をクリックしたときの移動スピードがスムーズか、一瞬か |

## その他
- [公式](http://rmarkdown.rstudio.com/html_document_format.html)にCSSなど詳細に記載されている

# Embed Code
## レポートにRコードを埋め込む方法が2種類ある

-  inline code
    - ドキュメントにコードを埋め込む方法

```r
# 例：今日の日付
今日の日付は`r format(Sys.time(), '%Y/%m/%d') ` 日です。
```

### code chunks
- ドキュメント内の一定の範囲でコード埋め込む
- code chnks にはいろいろなオプションを指定できる

```
    ```{r}
    dim(iris)
    ```
```

#### Chunk Option
- 以下のようなオプションがある
- オプションの指定方法は大きく2種類
    - hunk内で適応される方法

    ```
    {r eval=FALSE, error=FALSE}
    ```

    - ドキュメントのグローバルの設定とする方法

    ```
    opts_chunk$set(eval=FALSE, error=FALSE)
    ```

| option | default | effect |
|:-----------|:-----------|:-----------|
| eval | TRUE | コードを評価してその結果を含めるかどうか |
| echo | TRUE | 結果とともにコードを表示するかどうか |
| warning | TRUE | 警告を表示するかどうか |
| error | FALSE | エラーを表示するかどうか |
| message | TRUE | メッセージを表示するかどうか |
| tidy | FALSE | コードを表示するときに整形式でコードを再フォーマットするかどうか |
| results | "markup" | "markup"、 "asis"、 "hold"、または "hide" |
| cache | FALSE | 将来のレンダリングの結果をキャッシュするかどうか |
| comment | "##" | 結果を始めるコメント文字 |
| fig.width | 7 | チャンクで作成されたプロットの幅（インチ） |
| fig.height | 7 | チャンクで作成されたプロットの高さ（インチ） |
| prompt | FALSE | ターミナル文字「$」や「>」を実行結果に表示するかどうか|
| include | TRUE | 実行結果をHTMLなどに出力するかどうか |
| highlight | TRUE | コードをシンタックスハイライトにするかどうか |

### 言語の種類
    - 現在以下言語に対応している
        - R
        - Bash
        - Python
        - Rcpp
        - SQL
        - Stan

# 参考
- https://www.rstudio.com/wp-content/uploads/2016/03/rmarkdown-cheatsheet-2.0.pdf
- http://rmarkdown.rstudio.com/html_document_format.html
- http://d.hatena.ne.jp/teramonagi/20130615/1371303616