-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathfdb_intro.Rmd
198 lines (152 loc) · 6.81 KB
/
fdb_intro.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
---
title: "R Markdownでダッシュボード作成"
date: "`r format(Sys.time(),'%Y/%m/%d')`"
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
このドキュメントはR Markdownの初心者を想定しています。なので基本的な内容を中心に構成しています。なおRのコードは必要最低限しか出てきません。なおこれは過去にスライド形式で発表したRmdファイルをほぼそのままドキュメントとして出力しています。そのためほぼ箇条書きで書いています。
## ダッシュボードとは?
- 色々な情報をぱっと見で理解できるように集約したもの
- 車の運転席のダッシュボードをイメージしてもらえれば
- グラフや表,文字などをわかりやすく配置
- データを集約して表示するのに便利
- あるトピックについて,様々な角度から可視化
- 相手に情報を伝えやすい!
## flexdashboardパッケージ
- R Markdownの拡張パッケージ
- **Rmdファイル単体で**ダッシュボードを作成可能
- レイアウトが簡単
- row(行)とcolumn(列)によるレイアウトシステム
- モバイル対応(フレキシブルデザイン)
- レイアウト設定以外は通常のRmd
- 動的なコンテンツ(htmlwidgets系)も作成可能
- shinyもOK
## 使ってみよう {#howtoFdb}
### flexdashboardのインストール
- CRANから
```{r, eval=FALSE}
install.packages("flexdashboard")
```
- GitHub版から
```{r, eval=FALSE}
devtools::install_github("rstudio/flexdashboard")
```
- githubinstallから
```{r, eval=FALSE}
githubinstall::githubinstall("flexdashboard")
```
### テンプレートからRmdファイル生成
- R Markdownを新規作成
- "From Template"を選択
- "Flex Dashboard"を選択
- OKをクリック

こんなRmdができます:

そのままknitするとこうなります:

## 冒頭のyamlについて
```
title: "Untitled"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
```
- title: ページのタイトル(navbarにあるやつ)
- orientation: **列方向(columns)**で区切るか**行方向(rows)**で区切るか
- **見出し要素Lv2**の方向を決定します
- vertical_layout: グラフを範囲内に収める("fill")かスクロール("scroll")するか
- social: 要するに"共有"ボタンをつけるかどうか
他にもありますが,`?flexdashboard::flex_dashboard`でヘルプを参照してください
## レイアウトと見出しレベルについて
### 見出しレベル1: ページ区切り
- 見出しレベル1(h1)があると,ページ区切りとして機能
- 公式やサンプルでは`====`を使った方法で解説
```
ページタイトル
====
```
- でもいつもの`#`でもOK
```
# ページタイトル
```
- この文字は**表示されません**
- 識別用に利用されます
### 見出しレベル2: 親ブロックの区切り
- 見出しレベル2(h2)があると,その数だけページ内を区切ります
- 公式やサンプルでは`----`を使った方法で解説
```
ブロック
----
```
- でもいつもの`##`でもOK
```
## ブロック
```
- この文字は**表示されません**
- 識別用に利用されます
### 見出しレベル3: 親ブロック内の子ブロック
- 見出しレベル3(h3)があると,その親ブロック内で子ブロックを作成します
- いつも通り`###`で作ります
```
### ちゃーと
```
- この中にRチャンクを挿入して中身を作成
- 親ブロック内に子ブロックが複数あると**親と逆の方向で区切ります**
- この文字は**表示されます**
## タブセットの利用
- 親ブロック(見出しレベル2)内でタブを設定可能
- 子ブロック要素が各タブの内容となります
```
## 親ブロック {.tabset}
### 子ブロック1
(ここにRチャンクなど)
### 子ブロック2
(ここにRチャンクなど)
```
## その他のレイアウト関連
- 他にも色んなパターンができます
- 区切り幅(高さ)の調整
- サイドバーを表示
- ストーリボード
- 詳しくは,以下の本家のサイトを参照してください
- [Sample flexdashboard Layouts](http://rmarkdown.rstudio.com/flexdashboard/layouts.html)
## Components
- [ValueBoxes](http://rmarkdown.rstudio.com/flexdashboard/using.html#value_boxes): 単一の値をシンプルに示したい時に

- [gauge](http://rmarkdown.rstudio.com/flexdashboard/using.html#gauges): ゲージをさっくりと作ることも可能

- 詳細およびその他の要素は本家のサイトを参照
- [Using flexdashboard#components](http://rmarkdown.rstudio.com/flexdashboard/using.html#components)
## 活用例
過去に私が作ったダッシュボードの例を参考までに。
### 活用例: グルメマップ
- 学会に参加**できなかった**から作りました
- 実際のダッシュボードは[こちら](http://kz-md.net/stat/tmp_box/sp2016_map_dashboard.html)
- Rmdのコードは[こちら](http://kz-md.net/stat/tmp_box/sp2016_map_dashboard.Rmd) (データはありません)

### 活用例: 台風プロット
- 気付いたら作るようになってた
- 実際のダッシュボードは[こちら](http://kz-md.net/stat/tmp_box/2016typhoon2.html)
- Rmdのコードは[こちら](http://kz-md.net/stat/tmp_box/2016typhoon2.Rmd) (データはありません)

### 活用例: 個人別ダッシュボード
- 「あるデータセットから,個人別のダッシュボードをまとめて作りたい」
- R Markdownのパラメータ機能をうまく利用すれば可能
- 詳細は以下を参照
[R Markdownのparams機能を利用してflexdashboard作成](https://github.com/kazutan/param_dashboard)

## 参考資料 {#ref-fdb}
- [flexdashboard: Easy interactive dashboards for R](http://rmarkdown.rstudio.com/flexdashboard/)
- 本家のWebサイト
- たぶんまともな情報はここくらいにしかない
- あとはソースコードとヘルプを読むくらいしか…
- [flexdashboard Examples](http://rmarkdown.rstudio.com/flexdashboard/examples.html)
- サンプルがギャラリーになってます
- ソースコードも(いくつかは)確認できます
- 各ギャラリーをクリックして表示
- 画面右上の"</>Source Code"をクリック
- Pokemonすげぇ
**Enjoy!**