SlideShare a Scribd company logo
R markdownで図表番号の自動付与と参照
@t_macya
第64回R勉強会@東京(#TokyoR)
2017年8月26日
1 / 26
1 はじめに
2 R markdown is 何
3 表番号の自動付与と参照
4 図番号の自動付与と参照
5 まとめ
2 / 26
はじめに
3 / 26
自己紹介
Twitter: @t_macya
所属:高松大学
専門:教育心理学
web: http://mtokuoka.net
数式を多用しないがなんとなくbeamerやtexが好きなにわかてふにしゃん
統計とかプログラミングにちょっとだけ知識のある一般人
勝手に近況報告
つい最近やっとR markdownからbeamerが作れるようになりました
ベイズ統計モデリング: R, JAGS, Stanによるチュートリアル (犬4匹本)の中の1
章を訳しました。
本の厚さと大きさがネタになりますよ!
4 / 26
著書
5 / 26
モチベーション
ぎょーむにてちょっとしたデータ解析をすることがまれにある
全てのきょーむが楽しいとは限らない
書類作成をRでやればちょっとは楽しめるかもしれない
Rmdからhtmlもいいけど,印刷することを考えるとpdfがいいなー
tex環境があればR markdownからpdf作成ができるらしい
論文もRmdから書けると分析から執筆が進むかも
PDF出力だとなんとなく図表の相互参照したい
6 / 26
R markdown is 何
7 / 26
R markdown is 何?1
Rの解析結果や文をhtmlやPDFなど様々なフォーマットで出力してくれる
詳しくはドキュメント・プレゼンテーション生成やKazutan.Rを参照
8 / 26
R markdown is 何?2
コード部分にはRコード以外にもStanやpythonのコードもいける
9 / 26
R markdown is 何?3
こんな感じに出力してくれる。
10 / 26
表番号の自動付与と参照
11 / 26
紹介する関数とパッケージおよび相互参照の仕方
本LTでは,PDF,特にbeamerで利用可能なものを紹介します。
html形式ならDT packageやformattable packageなどがよさそう
関数の引数でラベル名を指定するタイプ
pandoc.table関数 (pander package): ref{ラベル名}
xtable関数 (xtable package): ref{ラベル名}
チャンク名を指定するタイプ
kable関数 (knitr package): ref(tab:チャンク名)
bookdown package: @ref(tab:チャンク名)
bookdownでbeamerを作れるのか確認していないため今回はなし
12 / 26
準備
サンプルデータにはmtcarデータを使用
ぎょーむの報告書では日本語の方が喜ばれそうなので変数名を日本語にしておく
燃費(mile/gallon),排気量,重さの3変数を使用
dat <- mtcars %>%
dplyr::select (mpg, disp, wt) %>%
dplyr::rename (燃費 = mpg, 排気量 = disp, 重さ = wt) %>%
round (digits = 2) %>%
head ()
13 / 26
これのきれいな形を目指す
dat
## 燃費 排気量 重さ
## Mazda RX4 21.0 160 2.62
## Mazda RX4 Wag 21.0 160 2.88
## Datsun 710 22.8 108 2.32
## Hornet 4 Drive 21.4 258 3.21
## Hornet Sportabout 18.7 360 3.44
## Valiant 18.1 225 3.46
14 / 26
pandoc.table関数: コード
captionの“ほげ label{ }”でラベルを付与しref{ }で参照可能
チャンク名の参照(ref{pandoc.talbe})はできなさそう(Table ??となる)
# ```{r pandoc.table, eval = TRUE, results=”asis”}
colnames(dat) <- iconv (colnames (dat), from = ”UTF-8”)
# dplyrを使うと文字コードをUTF-8に変換しないとエラーを吐き出す。
# ありがとうございますr-wakarang, @yutannihilationさん
pandoc.table(dat, ”ほげ label{pander}”)
15 / 26
pandoc.table関数: 出力
pandoc.table(dat, ”ほげ label{pander}”)
Table 1: ほげ
燃費 排気量 重さ
Mazda RX4 21 160 2.62
Mazda RX4 Wag 21 160 2.88
Datsun 710 22.8 108 2.32
Hornet 4 Drive 21.4 258 3.21
Hornet Sportabout 18.7 360 3.44
Valiant 18.1 225 3.46
Table ref{pander}とすると,Table 1となって相互参照できた!
16 / 26
xtable関数: コード
xtable関数の引数でラベル名を付与し(label = ” “),ref{ }で参照可能
チャンク名を参照しようとしても(ref{tab:xtable}),Table ??となってしま
い参照できさなそう。
# ```{r xtable, results = 'asis'}
print (xtable (dat, caption = ”ほげほげ”, label = ”x”),
type = ”latex”,
comment = FALSE,
caption.placement = ”top”)
17 / 26
xtable関数: 出力
# ```{r xtable, results = 'asis'}
print (xtable (dat, caption = ”ほげほげ”, label = ”x”), type = ”latex”,
comment = FALSE, caption.placement = ”top”)
Table 2: ほげほげ
燃費 排気量 重さ
Mazda RX4 21.00 160.00 2.62
Mazda RX4 Wag 21.00 160.00 2.88
Datsun 710 22.80 108.00 2.32
Hornet 4 Drive 21.40 258.00 3.21
Hornet Sportabout 18.70 360.00 3.44
Valiant 18.10 225.00 3.46
Table ref{x}とすると,Table 2となって相互参照できた!
18 / 26
kable関数: コードと出力
ref{tab: }内にチャンク名を指定すれば参照可能
# ```{r kable, results = 'asis'}
knitr::kable(dat, format = ”latex”, caption = ”ほげほげほげ”, booktabs = TRU
Table 3: ほげほげほげ
燃費 排気量 重さ
Mazda RX4 21.0 160 2.62
Mazda RX4 Wag 21.0 160 2.88
Datsun 710 22.8 108 2.32
Hornet 4 Drive 21.4 258 3.21
Hornet Sportabout 18.7 360 3.44
Valiant 18.1 225 3.46
Table ref{tab:kable}とすると,Table 3となって相互参照できた! 19 / 26
なんでパッケージによってcaptionと表の位置が違うのか
pandoc.table ()
3つの中では最もコードが複雑な構造になっている
{longtable}の中で{minitable}を使いコードが長い
xtable ()
{table}の中で{tabular}で表を作成
hlineで罫線
arrayrulewidthが0.4ptがデフォルトらしい
kable ()
{table}から始まり,begin{tabular}で表を作成
toprule, midrule, bottomruleで罫線を引く
デフォルトではtopとbottomはheavyrulewidthを0.08em
さらにbooktab = TRUEとしているため,いろいろと制御されているっぽい
20 / 26
図番号の自動付与と参照
21 / 26
図番号の自動付与と参照: コード
チャンクオプションのfig.capで加える図のラベルを付与できる。
ラベルの付与にはバックスラッシュを2つ入れる必要があるので注意。
Figure 1(ref{fig01})はmtcarデータの中の燃費と重さの関係を可視化したも
の。
# ```{r fig, dev='png', fig.cap = ”ふが. label{fig01}”}
g <- ggplot (dat, aes (x = 重さ, y = 排気量))
g + geom_point()
22 / 26
図番号の自動付与と参照: 出力
Figure 1: ふが.
23 / 26
まとめ
24 / 26
まとめ
表はrefで引数にするものがラベル名やチャンク名で異なるので注意
パッケージによってもキャプションの位置が微妙に変わる
図はチャンクオプションのfig.capでラベル指定
yamlでkeep_tex: trueにしてtexファイルを参照するとよいかも
25 / 26
参考webサイトなど
rmarkdownパッケージで楽々ドキュメント生成
R markdown from R studio
Miler S. V. (2015). Moving from Beamer to R Markdown
topruleとhlineの違い
r-wakarang
@yutannihilationさん, @hoxo_wさん, @keikuさん, @kazutanさんありがとうござ
います。
26 / 26

More Related Content

What's hot

Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
Hiroshi Shimizu
 
エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方
Hiroshi Shimizu
 
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
daiki hojo
 
Chapter7 回帰分析の悩みどころ
Chapter7 回帰分析の悩みどころChapter7 回帰分析の悩みどころ
Chapter7 回帰分析の悩みどころ
itoyan110
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
rstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたrstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみた
Hiroshi Shimizu
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量takaya imai
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
直久 住川
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
. .
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
hoxo_m
 
モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方
幹雄 小川
 
カメラ位置姿勢とビュー行列
カメラ位置姿勢とビュー行列カメラ位置姿勢とビュー行列
カメラ位置姿勢とビュー行列
Shohei Mori
 
リスクベースポートフォリオの高次モーメントへの拡張
リスクベースポートフォリオの高次モーメントへの拡張リスクベースポートフォリオの高次モーメントへの拡張
リスクベースポートフォリオの高次モーメントへの拡張
Kei Nakagawa
 
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
takehikoihayashi
 
心理学のためのPsychパッケージ
心理学のためのPsychパッケージ心理学のためのPsychパッケージ
心理学のためのPsychパッケージ考司 小杉
 
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Takashi J OZAKI
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
Junpei Tsuji
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
Ken'ichi Matsui
 

What's hot (20)

Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 
エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方エクセルで統計分析5 マルチレベル分析のやり方
エクセルで統計分析5 マルチレベル分析のやり方
 
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
 
Chapter7 回帰分析の悩みどころ
Chapter7 回帰分析の悩みどころChapter7 回帰分析の悩みどころ
Chapter7 回帰分析の悩みどころ
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
rstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたrstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみた
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方モデル最適化指標・評価指標の選び方
モデル最適化指標・評価指標の選び方
 
カメラ位置姿勢とビュー行列
カメラ位置姿勢とビュー行列カメラ位置姿勢とビュー行列
カメラ位置姿勢とビュー行列
 
リスクベースポートフォリオの高次モーメントへの拡張
リスクベースポートフォリオの高次モーメントへの拡張リスクベースポートフォリオの高次モーメントへの拡張
リスクベースポートフォリオの高次モーメントへの拡張
 
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
なぜベイズ統計はリスク分析に向いているのか? その哲学上および実用上の理由
 
心理学のためのPsychパッケージ
心理学のためのPsychパッケージ心理学のためのPsychパッケージ
心理学のためのPsychパッケージ
 
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
オイラー先生のおしゃれな素数判定 - 第14回 #日曜数学会
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
 

More from Masaru Tokuoka

SEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルSEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデル
Masaru Tokuoka
 
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05 RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
Masaru Tokuoka
 
ポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむ
Masaru Tokuoka
 
inferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違いinferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違い
Masaru Tokuoka
 
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.Rrstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.RMasaru Tokuoka
 
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
Masaru Tokuoka
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
Masaru Tokuoka
 
MCMCで研究報告
MCMCで研究報告MCMCで研究報告
MCMCで研究報告
Masaru Tokuoka
 
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
Masaru Tokuoka
 
第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)
Masaru Tokuoka
 
第1回DARM勉強会のANOVA補足(repeated measures designs)
第1回DARM勉強会のANOVA補足(repeated measures designs)第1回DARM勉強会のANOVA補足(repeated measures designs)
第1回DARM勉強会のANOVA補足(repeated measures designs)
Masaru Tokuoka
 
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
Masaru Tokuoka
 
第2回DARM勉強会
第2回DARM勉強会第2回DARM勉強会
第2回DARM勉強会
Masaru Tokuoka
 
第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討
Masaru Tokuoka
 

More from Masaru Tokuoka (14)

SEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデルSEMを用いた縦断データの解析 潜在曲線モデル
SEMを用いた縦断データの解析 潜在曲線モデル
 
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05 RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05
 
ポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむ
 
inferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違いinferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違い
 
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.Rrstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
 
混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
 
MCMCで研究報告
MCMCで研究報告MCMCで研究報告
MCMCで研究報告
 
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
 
第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)
 
第1回DARM勉強会のANOVA補足(repeated measures designs)
第1回DARM勉強会のANOVA補足(repeated measures designs)第1回DARM勉強会のANOVA補足(repeated measures designs)
第1回DARM勉強会のANOVA補足(repeated measures designs)
 
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
 
第2回DARM勉強会
第2回DARM勉強会第2回DARM勉強会
第2回DARM勉強会
 
第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討
 

170826 tokyo r_lt