O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Rでreproducible research

7.738 visualizações

Publicada em

  • Seja o primeiro a comentar

Rでreproducible research

  1. 1. RでReproducible Research 2012年7月7日 第24回Tokyo.R @sfchaos
  2. 2. アジェンダ� 自己紹介� Reproducible Researchとは� Rでやってみる� まとめ 1
  3. 3. 1. 自己紹介 2
  4. 4. � TwitterID: @sfchaos� 職業: データ分析� 抱負: 頑張る 3
  5. 5. 2. Reproducible Research 4
  6. 6. 2.1 Reproducible Researchとは� 「再現可能な研究」のこと.� データ分析者にとっては,「再現可能なデータ分 析」.� 後々,分析条件の確認や追試を実施できるよう, データ,分析内容,結果を確認できるようにすべ し. 5
  7. 7. 2.1.1 再現不可能な分析の例� コンソールやデバイスの分析結果をコピペする� コンソール上だけでコマンドを打ち,ソースコード を残さない 6
  8. 8. 2..2 効率的なレポート生成� 分析結果を数100枚~数1,000枚のレポートに まとめることも珍しくはない.� また,データ分析では条件を変えて同じプログラ ムを実行してレポートを作成することも往々にし て発生しがち. 7
  9. 9. � このようなレポートを作成するために,気合と根 性でRから出力した図や表をベタ貼りすることは 非現実的.� 何とか楽してレポートを作成したい!!� その一つの方法として,文芸的プログラミングが ある. 8
  10. 10. 2.3 文芸的プログラミング� RRは,Donard Knuthが提唱した「文芸的プログ ラミング(Literate Programming)」が大いに関 係する.� 文芸的プログラミングは, ドキュメントとソースを併記したWEBと呼ばれるメ タソースを記述し、そこからドキュメントとソース コードをそれぞれ生成させることで情報の一体性 を高めている (Wikipedia「文芸的プログラミング」) 9
  11. 11. � 興味がある方は,Knuth氏の書籍をどうぞ. 10
  12. 12. 3. Rでやってみる 11
  13. 13. 3.1 CRAN TASK VIEW� CRAN TASK VIEWには"Reproducible Research"のカテゴリが存在する. 12
  14. 14. � 出力フォーマットごとに,以下のようなパッケージがある.� CRAN TASK VIEWには,これらだけでなく,ソースコード のハイライトやRのオブジェクトのキャッシュを行うパッ ケージも列挙されている. 出力フォーマット パッケージの例LaTeX Hmisc, xtable, reporttools, r2lh, tables, pgfSweaveHTML R2HTML, hwriter, xtableODF odfWeaveMicrosoft Office R2wd, R2PPTプレインテキスト AsciiDoc, asciiその他 knitr 13
  15. 15. (;´д`)ゞ いっぱいあって,どこから手をつけたら良いのやら・・・ 14
  16. 16. � 私はこんな感じで使っています. 出力フォーマット 用途 使用パッケージLaTeX Rで作成した数表やオブ xtable ジェクトのLaTexで読み込 める形式への変換Microsoft Office Rで作成した図や数表の R2PPT, R2wdフォーマット 取り込み 15
  17. 17. � これらは,Rで作成した図や数表をLaTeXや Microsoft Office系のレポーティングツールに取 り込むために使用.� 一方で,Rのソースコードを作成しながら,レポー トを作成する以下のようなパッケージも存在する (文芸的プログラミング). � Sweave � knitr 16
  18. 18. 3.2 Sweave� 以下の@wakutekaさんのブログ記事が秀逸. 「文芸的な、あまりに文芸的な」 (R Advent Calendar 2011)http://d.hatena.ne.jp/wakuteka/20111206/13231 82969 17
  19. 19. 3.3 knitrパッケージ� Sweaveの精神を引き継いだ動的なレポートを生 成するためのパッケージ http://yihui.name/knitr/ 18
  20. 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. 21. $R> library(knitr)> knit2pdf("test.Rnw") これでLaTeX形式のPDFファイルが 生成されるが, 結構面倒 20
  22. 22. 3.3.2 Rのソースコードだけ記述するtest.rlibrary(ggplot2)summary(cars)plot(cars)qplot(speed, dist, data=cars) 21
  23. 23. $R> library(knitr)> stitch("test.r") LaTeX形式のPDFファイルが生成される 22
  24. 24. 楽にレポート作成ができるようになった! 23
  25. 25. だが待て. LaTeXだけでなく,もっといろいろなフォーマットで出力したい. → knitr + pandocで 24
  26. 26. 3.3.3 knitr + pandoc http://johnmacfarlane.net/pandoc/ 25
  27. 27. test_pandoc.r(Rのソースコード)#@knitr summarysummary(cars) ドキュメントを作るときに用いるタグを指定しておく#@knitr plot1plot(cars)#@knitr plot2library(ggplot2)qplot(speed, dist, data=cars) 26
  28. 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. 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. 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. 31. これで, いろいろなフォーマットのドキュメントが作れるようになる 30
  32. 32. 3.3.4 RStudioを用いる� RStudio(ver0.96以上)を用いて,このようなレ ポート作成が非常に楽に行える. 31
  33. 33. � 「ファイル(File)」 → 「新規作成(New)」 → 「R Markdown」� 以下のようなファイルを作成test.rmd 拡張子は"rmd"carsデータセットに対する分析========================================================統計量```{r}summary(cars)```散布図```{r fig.width=7, fig.height=6}plot(cars)``` 32
  34. 34. � knit HTMLボタンを押す 33
  35. 35. この後,Rpubsに投稿したり,HTMLファイルとして保存するのも 楽勝.34
  36. 36. 4. まとめ 35
  37. 37. � Reproducible Research データ分析者にとっては,「再現可能な分析」� knitrパッケージを用いるといろいろとできそう.� 未調査事項が多いので,また機会を見つけて発 表します. 36
  38. 38. 参考資料� JJ Allaire and Yihui Xie, "New Tools for Reproducible Research with R", 2012. 37

×