Your SlideShare is downloading. ×
Rでreproducible research
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Rでreproducible research

3,808
views

Published on


0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,808
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
25
Comments
0
Likes
11
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. RでReproducible Research 2012年7月7日 第24回Tokyo.R @sfchaos
  • 2. アジェンダ� 自己紹介� Reproducible Researchとは� Rでやってみる� まとめ 1
  • 3. 1. 自己紹介 2
  • 4. � TwitterID: @sfchaos� 職業: データ分析� 抱負: 頑張る 3
  • 5. 2. Reproducible Research 4
  • 6. 2.1 Reproducible Researchとは� 「再現可能な研究」のこと.� データ分析者にとっては,「再現可能なデータ分 析」.� 後々,分析条件の確認や追試を実施できるよう, データ,分析内容,結果を確認できるようにすべ し. 5
  • 7. 2.1.1 再現不可能な分析の例� コンソールやデバイスの分析結果をコピペする� コンソール上だけでコマンドを打ち,ソースコード を残さない 6
  • 8. 2..2 効率的なレポート生成� 分析結果を数100枚~数1,000枚のレポートに まとめることも珍しくはない.� また,データ分析では条件を変えて同じプログラ ムを実行してレポートを作成することも往々にし て発生しがち. 7
  • 9. � このようなレポートを作成するために,気合と根 性でRから出力した図や表をベタ貼りすることは 非現実的.� 何とか楽してレポートを作成したい!!� その一つの方法として,文芸的プログラミングが ある. 8
  • 10. 2.3 文芸的プログラミング� RRは,Donard Knuthが提唱した「文芸的プログ ラミング(Literate Programming)」が大いに関 係する.� 文芸的プログラミングは, ドキュメントとソースを併記したWEBと呼ばれるメ タソースを記述し、そこからドキュメントとソース コードをそれぞれ生成させることで情報の一体性 を高めている (Wikipedia「文芸的プログラミング」) 9
  • 11. � 興味がある方は,Knuth氏の書籍をどうぞ. 10
  • 12. 3. Rでやってみる 11
  • 13. 3.1 CRAN TASK VIEW� CRAN TASK VIEWには"Reproducible Research"のカテゴリが存在する. 12
  • 14. � 出力フォーマットごとに,以下のようなパッケージがある.� CRAN TASK VIEWには,これらだけでなく,ソースコード のハイライトやRのオブジェクトのキャッシュを行うパッ ケージも列挙されている. 出力フォーマット パッケージの例LaTeX Hmisc, xtable, reporttools, r2lh, tables, pgfSweaveHTML R2HTML, hwriter, xtableODF odfWeaveMicrosoft Office R2wd, R2PPTプレインテキスト AsciiDoc, asciiその他 knitr 13
  • 15. (;´д`)ゞ いっぱいあって,どこから手をつけたら良いのやら・・・ 14
  • 16. � 私はこんな感じで使っています. 出力フォーマット 用途 使用パッケージLaTeX Rで作成した数表やオブ xtable ジェクトのLaTexで読み込 める形式への変換Microsoft Office Rで作成した図や数表の R2PPT, R2wdフォーマット 取り込み 15
  • 17. � これらは,Rで作成した図や数表をLaTeXや Microsoft Office系のレポーティングツールに取 り込むために使用.� 一方で,Rのソースコードを作成しながら,レポー トを作成する以下のようなパッケージも存在する (文芸的プログラミング). � Sweave � knitr 16
  • 18. 3.2 Sweave� 以下の@wakutekaさんのブログ記事が秀逸. 「文芸的な、あまりに文芸的な」 (R Advent Calendar 2011)http://d.hatena.ne.jp/wakuteka/20111206/13231 82969 17
  • 19. 3.3 knitrパッケージ� Sweaveの精神を引き継いだ動的なレポートを生 成するためのパッケージ http://yihui.name/knitr/ 18
  • 20. 3.3.1 簡単な例test.Rnwdocumentclass{article}begin{document}<<setup, include=FALSE, cache=FALSE>>=opts_chunk$set(fig.path=figure/minimal-, fig.align=center, fig.show=hold)options(replace.assign=TRUE, width=90)@title{test}author{sfchaos}maketitle<<cars>>=library(ggplot2)summary(cars)plot(cars)qplot(speed, dist, data=cars)@end{document} 19
  • 21. $R> library(knitr)> knit2pdf("test.Rnw") これでLaTeX形式のPDFファイルが 生成されるが, 結構面倒 20
  • 22. 3.3.2 Rのソースコードだけ記述するtest.rlibrary(ggplot2)summary(cars)plot(cars)qplot(speed, dist, data=cars) 21
  • 23. $R> library(knitr)> stitch("test.r") LaTeX形式のPDFファイルが生成される 22
  • 24. 楽にレポート作成ができるようになった! 23
  • 25. だが待て. LaTeXだけでなく,もっといろいろなフォーマットで出力したい. → knitr + pandocで 24
  • 26. 3.3.3 knitr + pandoc http://johnmacfarlane.net/pandoc/ 25
  • 27. test_pandoc.r(Rのソースコード)#@knitr summarysummary(cars) ドキュメントを作るときに用いるタグを指定しておく#@knitr plot1plot(cars)#@knitr plot2library(ggplot2)qplot(speed, dist, data=cars) 26
  • 28. ファイル名末尾のtest_pandoc_knit_.md(ドキュメント生成) "_knit_"は必ずつける% knit-pandoc test% sfchaos<!-- Setting up R -->`ro warning=FALSE, dev="png", fig.cap="", cache=FALSE or````{r reading, echo=FALSE}read_chunk("test_pandoc.r")``````{r}<<summary>> Rのソースコードと分析結果を埋め込むために,```` Rのソースコードに埋め込んだタグを指定する```{r plot-fig1, result="asis"} ({r} で始まり で終わるブロックの中)<<plot1>>``````{r plot-fig2, result="asis"}<<plot2>>``` 27
  • 29. # markdownへの変換 (markdown形式のファイル"test_pandoc.md"が生成される)$ Rscripe -e "library(knitr); knit(test_pandoc_knit_.md)"# pdfへの変換$ pandoc -s test_pandoc.md -t latex -o test_pandoc.pdf # HTMLへの変換 $ pandoc -s test_pandoc.md -t html -o test_pandoc.html # OpenOffice形式への変換 $ pandoc test_pandoc.md -o test_pandoc.odt # Microsoft Word形式への変換 $ pandoc test_pandoc.md -o test_pandoc.docx 参考: kariert, Reproducible research with markdown, knitr and pandoc  (R-bloggers 2012/5/17) 28
  • 30. � pandocを用いて出力できるフォーマット 出力フォーマットTeX LaTeX, ConTeXt, LaTeX Beamer slidesHTML XHTML, HTML5, and HTML slide shows using Slidy, Slideous, S5, or DZSlidesWord Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XMLEBook EPUB文書フォーマット DocBook, GNU TexInfo, Groff man pagesマークアップフォーマット Markdown, reStructuredText, AsciiDoc, MediaWiki markup, Emacs Org-Mode, Textile 29
  • 31. これで, いろいろなフォーマットのドキュメントが作れるようになる 30
  • 32. 3.3.4 RStudioを用いる� RStudio(ver0.96以上)を用いて,このようなレ ポート作成が非常に楽に行える. 31
  • 33. � 「ファイル(File)」 → 「新規作成(New)」 → 「R Markdown」� 以下のようなファイルを作成test.rmd 拡張子は"rmd"carsデータセットに対する分析========================================================統計量```{r}summary(cars)```散布図```{r fig.width=7, fig.height=6}plot(cars)``` 32
  • 34. � knit HTMLボタンを押す 33
  • 35. この後,Rpubsに投稿したり,HTMLファイルとして保存するのも 楽勝.34
  • 36. 4. まとめ 35
  • 37. � Reproducible Research データ分析者にとっては,「再現可能な分析」� knitrパッケージを用いるといろいろとできそう.� 未調査事項が多いので,また機会を見つけて発 表します. 36
  • 38. 参考資料� JJ Allaire and Yihui Xie, "New Tools for Reproducible Research with R", 2012. 37

×