Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Report
Nagi Teramo
Follow
Quant(itative) Analyst/Developer/Researcher
Feb. 22, 2014
•
0 likes
69 likes
×
Be the first to like this
Show More
•
31,316 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
グラフニューラルネットワーク入門
ryosuke-kojima
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
Ichigaku Takigawa
ggplot2用例集 入門編
nocchi_airport
21世紀の手法対決 (MIC vs HSIC)
Toru Imai
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
宏喜 佐野
Stan超初心者入門
Hiroshi Shimizu
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII
Rcppのすすめ
Masaki Tsuda
1
of
96
Top clipped slide
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Feb. 22, 2014
•
0 likes
69 likes
×
Be the first to like this
Show More
•
31,316 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Education
第36回R勉強会@東京(#TokyoR)の資料
Nagi Teramo
Follow
Quant(itative) Analyst/Developer/Researcher
Advertisement
Advertisement
Advertisement
Recommended
圏論のモナドとHaskellのモナド
Yoshihiro Mizoguchi
10.2K views
•
24 slides
Visual Studio CodeでRを使う
Atsushi Hayakawa
8.9K views
•
25 slides
単語の分散表現と構成性の計算モデルの発展
Naoaki Okazaki
35.3K views
•
42 slides
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Takashi J OZAKI
152.5K views
•
49 slides
トピックモデルの基礎と応用
Tomonari Masada
8.4K views
•
132 slides
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
34.8K views
•
106 slides
More Related Content
Slideshows for you
(20)
グラフニューラルネットワーク入門
ryosuke-kojima
•
46.8K views
(2020.10) 分子のグラフ表現と機械学習: Graph Neural Networks (GNNs) とは?
Ichigaku Takigawa
•
1.1K views
ggplot2用例集 入門編
nocchi_airport
•
20.6K views
21世紀の手法対決 (MIC vs HSIC)
Toru Imai
•
23.7K views
ベイジアンモデリングによるマーケティングサイエンス〜状態空間モデルを用いたモデリング
宏喜 佐野
•
24.5K views
Stan超初心者入門
Hiroshi Shimizu
•
82.9K views
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII
•
3.3K views
Rcppのすすめ
Masaki Tsuda
•
14K views
階層ベイズによるワンToワンマーケティング入門
shima o
•
20K views
(2017.6.9) Neo4jの可視化ライブラリまとめ
Mitsutoshi Kiuchi
•
9.2K views
ブラックボックス最適化とその応用
gree_tech
•
5.6K views
QGIS はじめてのラスタ解析
Mayumit
•
46.1K views
比例ハザードモデルはとってもtricky!
takehikoihayashi
•
81.3K views
R Markdownによるドキュメント生成と バージョン管理入門
nocchi_airport
•
10.1K views
ナレッジグラフとオントロジー
University of Tsukuba
•
5K views
SAT/SMTソルバの仕組み
Masahiro Sakai
•
35.8K views
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
Ken'ichi Matsui
•
79.5K views
Rを用いたGIS
Mizutani Takayuki
•
19.1K views
DBpedia Japaneseとは?
National Institute of Informatics (NII)
•
6.4K views
第一原理計算と密度汎関数理論
dc1394
•
60.2K views
Similar to ~knitr+pandocではじめる~『R MarkdownでReproducible Research』
(20)
Rでreproducible research
Shintaro Fukushima
•
7.9K views
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
•
6.9K views
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
•
1.1K views
第一回Data mining勉強会 -第二章
Tomonobu_Hirano
•
515 views
Programming camp code reading
Hiro Yoshioka
•
2.3K views
第一回Data mining勉強会 -第二章 - 原案
yushin_hirano
•
603 views
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
•
11.1K views
111015 tokyo scipy2_ディスカッション
Shohei Hido
•
1.4K views
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
•
11.6K views
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
•
9.6K views
Sakuteki02 yokkuns
Yohei Sato
•
3.8K views
普通のプログラミング言語R
Shuyo Nakatani
•
5.1K views
Programming camp 2008, Codereading
Hiro Yoshioka
•
292 views
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
•
2.1K views
Rubyとプログラミング言語の潮流
Kazuhiko Kato
•
1.9K views
続・SECDマシン
t-sin
•
417 views
Tokyo r38
Takashi Minoda
•
5.9K views
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
monglee
•
554 views
Tokyo r50 beginner_2
Takashi Minoda
•
4.7K views
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
YoheiOkuyama
•
1.4K views
Advertisement
More from Nagi Teramo
(20)
第86回R勉強会@東京 LT資料
Nagi Teramo
•
2.6K views
Rでを作る
Nagi Teramo
•
3.6K views
Reproducebility 100倍 Dockerマン
Nagi Teramo
•
4.3K views
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
Nagi Teramo
•
5.6K views
闇と向き合う
Nagi Teramo
•
10.4K views
機械の体を手に入れるのよ、鉄郎!!!
Nagi Teramo
•
10.1K views
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
•
7.8K views
5分でわかるかもしれないglmnet
Nagi Teramo
•
21.7K views
Ultra Lightning Talk × 3
Nagi Teramo
•
5.2K views
F#談話室(17)
Nagi Teramo
•
1.5K views
RFinanceJはじめました
Nagi Teramo
•
5.2K views
お前の逐モン、GETだぜ!
Nagi Teramo
•
6.4K views
Trading volume mapping R in recent environment
Nagi Teramo
•
2.2K views
とある金融屋の統計技師が時系列解析してみた
Nagi Teramo
•
27.6K views
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
•
27.7K views
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Nagi Teramo
•
26.2K views
レプリカ交換モンテカルロ法で乱数の生成
Nagi Teramo
•
12.8K views
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
•
39.8K views
Rで学ぶ『構造型モデル de 倒産確率推定』
Nagi Teramo
•
9.9K views
Chapter 6: Computing on the language (R Language Definition)
Nagi Teramo
•
3.4K views
Recently uploaded
(20)
QQ微信819 4343办Queen's假毕业证成绩单,办皇后大学本科毕业证书,办Queen's硕士假文凭,办Queen's研究生学位证书,办Queen'...
ColumbiaDiplomaColum
•
5 views
#专业办证《UA毕业证学位证原版精仿》
sarotex825pgobom
•
2 views
★可查可存档〖制作西伊利诺伊大学文凭证书毕业证〗
vvvvv24
•
2 views
Fordham毕业证成绩单,办福特汉姆大学毕业证书,QQ/WeChat:819 4343,办Fordham本科毕业证,办Fordham假文凭硕士证书,办F...
BonnieLaymon
•
3 views
《约克大学毕业证|学位证书校内仿真版本》
124hdjkhas
•
3 views
★可查可存档〖制作皇家霍洛威学院文凭证书毕业证〗
vgfg1
•
2 views
★可查可存档〖制作麻省大学波士顿分校文凭证书毕业证〗
vvvvv24
•
2 views
《麦考瑞大学毕业证|学位证书校内仿真版本》
hj123saf
•
3 views
#专业办证《UH毕业证学位证原版精仿》
sarotex825pgobom
•
2 views
★可查可存档〖制作布兰登大学文凭证书毕业证〗
mmmm282537
•
2 views
#学位证靠谱办奥克兰大学文凭证书全套
qghfsvkwiqiubridge
•
2 views
Radio09(1995).pdf
ivan ion
•
3 views
《中央兰开夏大学毕业证|学位证书校内仿真版本》
w124dsa
•
3 views
MOTION OF CHARGED PARTICLE IN MAGNETIC FIELD.ppt
DinamGyatsoAadHenmoo
•
0 views
《泰瑞维提理工学院毕业证|学位证书校内仿真版本》
hj123saf
•
3 views
★可查可存档〖制作犹他大学文凭证书毕业证〗
vvvvv24
•
2 views
2023パーフェクトなレポート執筆のための引用の書きかた .pdf
Yoshida-South Library, Kyoto University
•
6 views
#专业办证《Capilano毕业证学位证原版精仿》
mibiri4418mevor
•
2 views
★可查可存档〖制作圣劳伦斯学院文凭证书毕业证〗
tujjj
•
2 views
《川特大学毕业证|学位证书校内仿真版本》
124hdjkhas
•
3 views
Advertisement
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
第36回 勉強会@東京(#TokyoR) ~knitr+pandocではじめる~ 『R MarkdownでReproducible Research』 @teramonagi
もくじ • 自己紹介&モチベーション • 準備 •
R MarkdownでReproducible Research –基礎編 –応用編 • まとめ • 参考(書籍|スライド|サイト) 2
自己紹介 • ID:@teramonagi • 興味:/R/C++/F#/ 微分幾何/モンテ カルロ法/物理学 /金YOU/ •
直近:ドキュメン テーション辛い 3
このお話のモチベーション • 計算/分析結果をまとめたWord/TeX を書くのがめんどい –TeXのタグがしんどい。Wordの“見 出し”が俺の言うこと聞かない… • そもそも結果に再現性がない –あのcsvとあのDBのデータを持っ て来て云々…あれ?結果が違う? 4
これから1,000枚の図 を手で報告書に貼りつ けなきゃならんぜ!!! 終電コース!!! 5
そういうの、もうしんどい この状況、 どうにかなら ないの? 6
でも、大丈夫 そう、 Markdownならね 7
Markdownを使えば… • Rのコードと、資料本文を管理・作成 (文芸的プログラミングの実践) • コードと本文から成るドキュメントを 再実行(コンパイル)すれば結果の 再現性が担保される (Reproducible
Research) ※“文芸的プログラミング”と“Reproducible Research”の正確な定義がよくわからん… 8
準備 9
本スライドの話に必要な道具 • Rstudio(knitrパッケージ) • pandoc •
TeX環境一式 • (Windows) • (Microsoft Office環境) 10
RStudio • Rの統合開発環境(IDE) http://www.rstudio.com/ide/download/desktop 11
knitrパッケージ • Rのコンソールで、以下のコマンドを 実行 > install.packages("knitr") 12
Pandoc • ドキュメント・コンバータ http://johnmacfarlane.net/pandoc/ 13 ※PDF/MS Wordを作るのに使用。LINK先にあるDLページからmsiファイルでインストール
TeX • TeXインストーラ(PDF作成用) http://www.math.sci.hokudai.ac.jp/~abenori/soft/abtexinst.html ※TeXをPDFにする際に使用。LINK下部の【ダウンロード】から最新版をインストール 14
R MarkdownでReproducible Research 基礎編 15
R Markdownを書くために • Rstudio上でknitrパッケージを使用 •
knitr≒文芸的プログラミングエンジン • R(コード)と「LaTeX, HTML, Markdown, reStructuredText」等の本文を組み合 わせ、動的にレポートを生成可能 • ”チャンク(chunk)”というコード(塊?片?) とレポート”本文”をあわせて書く ※実はR以外にもC++・python・awkなんかもいける 16
大まかな流れ ( .html 何 .Rmd ら (R Markdown) .docx か の 処 knitr .pdf .Rhtml 理 (R HTML) パッケージ 挟 .md む .Rnw こ .tex (TeX+R) と 屡 等 ※reStructuredTextなんかもイケる ※正確に言うと、knitrパッケージは【R
Markdown(.Rmd)】→【Markdown(.md)】を担当 17 ) R+本文(HTML, MarkDown等)
.Rnwファイルの処理法 2つの処理法 がある ※Rstudioの設定画面(【Tools】→【Options】) 18
knitr/Sweaveの違い Rのパッケージ knitr Sweave 処理対象 .Rhtml .Rmd .Rnw ※knitrとSweaveでは.Rnwを処理する際に使えるchunkのオプションがちょいと違う 19
.Rnw/.Rmdの違い • TeXベース(.Rnw)かMarkdownベー ス(.Rmd)かが違う • できる事は.Rnwの方が多い(はず) .Rnw .Rmd ※.RnwのnwはNowebの意味でそういうLiterate
Programmingツールに由来するらしい 20
本題へ 21
まずは新規ファイルの作成 クリック ※Rstudioを立ち上げて【File】 22
デフォルトでなんか入ってる 1:ファイルを保存(UTF-8推奨) 2:を押す ※ファイルに変更がないと保存できないかも 23
結果(HTML)がプレビューされる 24
以下、こ の.Rmdファ イルに、コー ドと文章を書 いきます 25
この後(少なくとも俺は)こうしてる • 基本的に 1. (適当に)文章書いて 2.
間にRのコードを挟む な感じで書いていく • 時々、[Knit HTML]押してチェック ←行ったり来たり→ .Rmd (R Markdown) knitr ※もっといいやり方あったら教えてください .html 26
まずは基本的な書き方 • 本文の間にチャンクと呼ばれる ```{r label,
option1, …., optionN} ----ここにRのコード----``` を書き、Rのコードを埋め込んでいく (label・optionはIDと処理のオプション) • .Rhtmlでも.Rnwでも基本こんな感じ (Chunkの開始・終了タグがちょいと違うだけ) 27
まずは基本的な書き方 • 以下の内容を.Rmdファイルに追記 やぁ、みんなこんにちは! ぼくのRのversionは ```{r my_r_version,
warning=TRUE} R.version.string ``` Rのコード ダヨ!!! Chunk Chunkのlabel. ID的なもん Chunkのオプション的なもん 28
まずは基本的な書き方 • [Knit HTML]ボタン押すと以下のよう な、出力が得られる ※宗教上の理由で古いRを使っております 29
アドバイス • Chunkのlabelは同/別のファイルか ら参照する際に使用されるんで、な くてもOKだが、必要ならちゃんとつ けとけ。chunkの共有・参照に便利 • Chunkのオプションはたくさんあるか ら、使いそうなもんだけ覚えておけ (後述) 30
インラインChunk • 以下の内容を.Rmdファイルに追記 `r XXX`でインライン展 開されるchunkになる carsデータに関する回帰分析だーっ! ```{r
lm_result} x <- lm(dist~speed, data=cars) ``` この結果、回帰係数の切片は `r coef(x)["speed"]`となった。 31
インラインChunk • 文章中に結果が埋め込まれる • 結果を適当な変数に入れておけば、 文章だけ先に用意することも可能 32
数式の追加 • 以下の内容を.Rmdファイルに追記 数式も表示できるヨ!! $でインラインな数式 $f(x) =
ax^2 + bx + c$、 $$で1行まるごと数式 $$f(x) = ax^2 + bx + c$$ TeX記法 を用いる 33
数式の追加 • 実行結果(HTML) • mathjaxを用いて描画されている 34
表の追加 • resultsオプションに、”そのまま出力”を 意味する’asis’を指定 • knitr内のkable関数を使用(xtableも可) •
format=“markdown”でpandoc用 markdownテーブルへ出力可 ```{r table1, results='asis'} x <- lm(dist ~ speed, data=cars) kable(summary(x)$coef, format="html",digits=2) ``` ※その他、panderパッケージなるものを使う手もある 35
表の追加 • 表の”見てくれ”を変えたい場合は、 HTML表示の際に使われるcssファイ ルを変える必要あり(※) ※参照:http://www.slideshare.net/wdkz/rstudio-13866958 36
図の追加 • 単純にPLOT関数を書けばOK • fig.(width|height)には出力(Not
張付) 画像サイズをインチ単位で指定 • fig.capオプションに文字列を指定する と図のキャプションも入る(Word等時) ```{r plot_cars, fig.width=5, fig.height=4} plot(cars) ``` 37
図の追加 38
図の追加 • ggplot2なんかもOK ```{r plot_iris,
fig.width=5, fig.height=4} library(ggplot2) qplot(Sepal.Length, Sepal.Width, data =iris, colour=Species) ``` 39
図の追加 40
グローバルにオプション指定 • 毎回chunkにオプション書くのめんどい • opts_chunkで全体に対して一括でオプ ションを指定できる ```{r
global_option, eval=FALSE} #opts_chunk$setで指定したものは、 #全体に設定されるので以降指定しなくてOK opts_chunk$set(fig.width=6, fig.height=6) ``` 41
その他のオプションについて R markdown(knitr)パッケージのchunk optionまとめ http://d.hatena.ne.jp/teramonagi/20130615/1371303616 42
基礎編のまとめ • とりあえずHTMLで –Rの基本的な実行結果 –図・表・数式 が出力できるようになった! • レポートをHTMLで作成していいなら これで大体OK •
オプションは必要に応じてググれ 43
本文を書く際に使える Markdownのクイックリファレンス Markdownの クイックリファレン スが開くクリック ※見出し、フォント等の設定法が書いてある。最新版のRStudioだとちょい見てくれ違う 44
R MarkdownでReproducible Research 応用編 45
応用編 • もうちょっと”凝った”ものを作 るためのテクニック的なもの • 俺が悩んで酷い目にあったも のへの対処法 …を紹介 46
Chunkオプションの条件化 • ChunkオプションにはRの変数や関 数の結果を代入することが可能 • 例:xが3より大きい場合のみchunk を評価 ```{r
conditionalchunk_eval, eval=(x>3)} print("x は3より大きい") ``` ※ 図の番号をつけるのとかにも使える ※参照:https://github.com/yihui/knitr-examples/blob/master/070-caption-num.Rmd 47
スクリプトの共有 • read_chunk関数により、Rで書いた他の ファイルを取りこむことが可能 • 以下の内容のファイルが”share/shared.R” として保存してあると仮定 ##
@knitr plus10r plus10 <- function(x){ x+10 } plus10(3) ## @knitr subset_iris subset(iris, Sepal.Length>7.6) 48
スクリプトの共有 .Rmdの例 その出力結果 ```{r read_shared_r} read_chunk("share/shared_r.R") ``` ```{r plus10r} ``` shared_r.R内の関数が ##
@knitr plus10r という書式で指定されたラベルで実行できる! 49
.Rmdファイルの分割 • 以下のような内容の.Rmdを作成 (share/shared_rmd.Rmdとした) ```{r child_rmd} print("これは別ファイルに記述されたR
Markdownです") ``` • 別の.Rmdでchildオプションで指定 ```{r child1, child="share/shared_rmd.Rmd"} ``` 50
.Rmdファイルの分割 • .Rmdが展開(本文)され、chunkも実 行される • 複数人で書く、あるいは章ごとに分 けるなどの際に便利 51
他の言語、突っ込む • engineオプションを指定することで、 他の言語(python, ruby,
sed, awk, haskell, SAS, perl)をchunkとして突っ 込める • 更に、Rcppを指定するとRcppのコー ドを書く事も可能 52
他の言語、突っ込む(Rcpp) • フィボナッチ数列計算関数作成 ```{r engine_rcpp,
engine='Rcpp'} #include<Rcpp.h> // [[Rcpp::export]] int fibCpp(const int x){ if(x==0 || x==1){return(x);} return(fibCpp(x-1) + fibCpp(x-2)); } ``` 53
他の言語、突っ込む(Rcpp) • 作成した関数を.Rmd内部で使用 ```{r r
use_rcpp} #Rcppで作成した関数を使用 fibCpp(10) ``` 54
他の言語、突っ込む(python) • フィボナッチ数列計算関数作成&実行 ```{r engine='python'} def
fibPy(n): if n == 0 or n == 1 : return n else: return fibPy(n-1) + fibPy(n-2) print fibPy(10) ``` 55
他の言語、突っ込む(python) • HTMLとして出力すると、ちゃんとソー ス+実行された結果が返ってくる 56
Chunkのエイリアス • Chunkオプションには、略記のため の”別名”を付けることも可能 ```{r} set_alias(w =
"fig.width", h = "fig.height") ``` ```{r w=7, h=6} plot(cars) ``` ※正確にはchunkオプション以外にPackageオプションがあり、aliasはその1つ 57
コードをAppendixに載せる Aという手法を用いると、以下のような結果が算出される。 ```{r AppA, echo=FALSE} 1+1 ``` 一方、手法Bを用いると、以下のような結果となった。 ```{r
AppB, echo=FALSE} 2+3 ``` ~Appendix~ 手法Aのコード ```{r AppA, eval=FALSE} ``` 手法Bのコード ```{r ref.label=c('AppB'), eval=FALSE} ``` ※ちなみにall_labels関数を用いると全chunkのlabelが引ける 58
コードをAppendixに載せる 59
テンプレートからの作成 • Rのソースコードを雛型として、一気に 定型レポート作成する関数もあり –spin: .R
---> .md –stitch: .R ---> .md/.html/.pdf(*1) • spinは変換のみ • stitchは簡単なレポートのテンプレート まで作ってくれる(*2) ※1: 日本語環境だとpdf生成は、相当頑張って設定しないとキツいとおもう… ※2: デフォルトのテンプレートだとsessioninfo, ファイルの生成時間を自動で付けてくれたり する。テンプレートは指定可能。 60
テンプレートからの作成 • spin関数、RStudioから即使えます こいつをポチる 61
テンプレートからの作成 • spin関数による変換結果 62
さて、 63
日本を支える ビジネスマンの 皆さん 64
鬼門です 65
鬼門 すぐに Word で報告書を 作成して 66
手で図・表の結果をWord貼り付ける… 枚数によっては ※VBA使ってもしんどい 67
Word/PDFで出力したい • Pandocを使って、knitrの出力 (Markdown)をWord/PDFへ変換する 方向で • knitrから直接変換できるものの、日 本語が入ると正直キツい •
これは試行錯誤の末の一案なので、 だれかもっといいやり方あったら教 えて… 68
ドキュメント変換のルート markdown .Rmd 基礎編のルート .md pandoc pandoc knitr .tex .html .docx TeX (LuaLaTeX) .pdf 69
ドキュメント変換に向けて • HTML以外にするためには、ある程 度knitrが中でどんな動きをしている のかを知っておくのが得策 • というわけで、[Knit
HTML]ボタンを 押した場合の挙動をちょいと紹介 70
[Knit HTML]ポチった時の動作 .Rmd (R Markdown) knit関数 (knitrパッケージ) .md (Markdown) markdownToHTML関数 (markwodnパッケージ) .html (HTML) ※実際はRstudio内部にあるMarkdownからHTMLにする内部関数が使われてるらしい 71
[Knit HTML]ポチった時の動作 • 模倣するには、以下のように書く library(knitr) library(markdown) output
<- knit(“TokyoR36_Basic.rmd”,encoding=“UTF-8”) #「invalid multibyte string at」 #というエラーが出るので解消するためにロケール変えてる。 #Windows 7だけかも? #ロケール変えなくていいなら #knitr::knit2html関数もほぼ同じ挙動 Sys.setlocale(locale=“C”) markdownToHTML(output, output=“ TokyoR36_Basic.html") 72
ドキュメント変換の指針 • なんで、knit関数を使って、 Markdown(.md)を作成した後、これ をmarkdownパッケージ経由でHTML にはせずに、Word/PDFに“変換”す る方法を取る • その”変換”にはpandocを使用 73
ドキュメント変換の際の注意 • HTMLでチェックしつつ、Markdownに 持って行こうと思う場合、表の形式を HTML⇔Markdownで切り替える必要 がある • とりあえず、以下のようなコード を、.Rmdの頭に書くようにしておいた ```{r
table_format} table.format <- ifelse(exists(“table.format”), table.format, “html”) ``` ※参考程度に後述するhookってのを使うのもあり 74
Wordへの変換 • こんな感じでいけます • pandocはRのpandoc関数で召喚 •
tableがmarkdownになるように設定 ```{r convert_to_docx, eval=FALSE} library(knitr) env <- new.env() assign(“table.format”, “markdown”, env) output <- knit(“TokyoR36_Basic.Rmd”, envir=env, encoding=“UTF-8”) pandoc(output, format=‘docx’) ``` ※pandocのオプションとして--reference-docxをつけると.docxの書式等を指定したテンプレートが使える ※ @sky_y氏作の日本語訳有!多謝!(http://sky-y.github.io/site-pandoc-jp/users-guide/) 75
Wordへの変換結果 76
からの、 罠 • 僕のWord数式が文字化ける ※Word 2007だけかも?手元に環境がないのでよくわからない 77
数式の文字化け修正 • Wordファイルの拡張子を.docx→zip へと変更 • zipを解凍し、word/document.xmlを 適当なテキストエディタで開く 78
数式の文字化け修正 ファイル内の <m:t> を <w:rFonts w:hAnsi="Cambria Math" w:ascii="Cambria
Math"/><m:t> に置換&保存する 79
数式の文字化け修正 • 解凍したファイル4つを選択し、また再圧縮 • 拡張子を.docxに戻す 80
数式の文字化け修正 • 拡張子をdocxに戻すとちゃんと数式 が表示される!!! • オイラやったよ!!! 81
やったね! 図・表の1,000枚程度、 ドンと来い 82
PDFで出力したい • [.md]→[.tex]→[.pdf]とTeX経由でPDFへ • 以下のような”おまじない”でPDFになります •
コマンドプロンプトで「pandoc –D latex」と 打って出る結果が、デフォルトのTeXのテン プレートになるので、スタイル変更したい場 合は、適当に改変する必要有(*) library(knitr) env <- new.env() assign(“table.format”, “markdown”, env) output <- knit(“TokyoR36_Basic.Rmd”, envir=env, encoding=“UTF-8”) system(sprintf(“pandoc -s %s -V documentclass=ltjltxdoc -o hoge.tex”, output)) system(“lualatex -interaction=nonstopmode hoge.tex”) ※おとなしくユーザガイド見るのが一番いい(http://johnmacfarlane.net/pandoc/README.html ※ @sky_y氏作の日本語訳有!多謝!(http://sky-y.github.io/site-pandoc-jp/users-guide/) 83
PDFで出力したい ごちゃごちゃ面 倒だし、Wordを PDFで名前付け て保存でいいや ※あくまで私見です 84
この資料で全く解説してない内容 • hookというknitr内で行われるR Markdown処理の拡張方法がある –chunkオプションを拡張する事がで きる –Chunkの処理(前後)に好きな処理 を挟むことが出来る • “knit_hooks”で調べると良い ※正確にはchunk
hooksとoutput hooksがある ※render_XXX(関数を調べるとよい 85
後は頑張って作者のページ嫁 http://yihui.name/knitr/ 86
変換周りはPandocのマニュアル嫁 http://johnmacfarlane.net/pandoc/README.html 87
Pandocの日本語ユーザーズマニュアル有 @sky_y氏多謝!!!( http://sky-y.github.io/site-pandoc-jp/users-guide/) 88
Enjoy!!! 89
参考書籍 Dynamic Documents with
R and knitr どちらかとい うとLaTeXとい うか.Rnwの話 題が多い 90
参考スライド そろそろRStudioの話でもしてみようと思う http://www.slideshare.net/wdkz/rstudio-13866958 91
参考スライド RStudio事始め http://www.slideshare.net/TakashiYamane1/rstudio92
参考スライド RでReproducible Research http://www.slideshare.net/sfchaos/rreproducible-research-13569000 93
参考サイト http://kbroman.github.io/knitr_knutshell/ 94
参考サイト https://github.com/yihui/knitr-examples 95
参考サイト http://d.hatena.ne.jp/a_bicky/20140221/1392941055 96
Advertisement