Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

そろそろRStudioの話

47,418 views

Published on

第25回東京R勉強会の発表資料です

Published in: Education
  • Be the first to comment

そろそろRStudioの話

  1. 1. そろそろRStudioの話でもしてみようと思う 2012/08/04 Tokyo.R#25 和田 計也サイバー系
  2. 2. サイバー系 はじめに ※この発表は個人の 見解であり、所属す る組織の公式見解で はありません。2012/8/4 1
  3. 3. サイバー系 自己紹介  和田 計也(@wdkz)  静岡県袋井市出身  サイバー系企業でデータマイニングエンジニア職  最近はレポーティング周りの仕事してます  前職はバイオベンチャー  バイオマーカ探索してた  学生時代は枯草菌の研究2012/8/4 2
  4. 4. サイバー系 私はこうしてRStudioに乗り換えました  従来  エディタ(EmEditor) + RGUI featuring コピペ  現在  RStudio  乗り換えた理由  括弧補完してくれたり、オブジェクトの一覧が表示され てるから迷子にならないし、data.frameの中を手軽に 見れるし、plot図何枚も保持してくれてるし...  Rmarkdownで記述してknitrでknit htmlして簡単にレポーティングできるから2012/8/4 3
  5. 5. サイバー系 今日お伝えしたいこと 1. RStudio使いましょう! 2. R Markdownでコード保存しましょう! 3. knitrのknit HTMLでレポーティングしましょう!2012/8/4 4
  6. 6. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル2012/8/4 5
  7. 7. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル2012/8/4 6
  8. 8. サイバー系 RStudioとは?  RのIDE(Integrated Development Environment)です  サイト  http://rstudio.org/  スクショ→2012/8/4 7
  9. 9. サイバー系 Desktop版とServer版とあります  Desktop版  Server版 ・誰かがセットアップして くれたら、みんな使える! ・みんなでコードを共有で きる! ・linuxでしか使えない libraryも使える! XML, RApache ...2012/8/4 8
  10. 10. サイバー系 インストール_どっちか選んでね  Desktop版  自分の使ってるOS用のバイナリ落としてダブルクリック  Server版(のUbuntu版) sudo apt-get install r-base sudo apt-get install libssl0.9.8 http://rstudio.org/download/desktop sudo apt-get install libapparmor1 apparmor-utils wget http://download2.rstudio.org/rstudio-server-0.96.316- amd64.deb sudo dpkg -i rstudio-server-0.96.316-amd64.deb *RedHat/CentOSでもrpmでインストールできるよ。 でもRのバージョンは新し目のにしてね! http://rstudio.org/download/server2012/8/4 9
  11. 11. サイバー系 RStudioを起動してみる  Desktop版  アイコンをダブルクリック  Server版  ブラウザでhttp://xxx.xxx.xxx.xxx:8787 ログイン画面 Firefox, Safari, Chrome以外のブラウザだと 以下の表示が出て使えない *ログインには、RStudioがインストールされたサーバのuserとpasswordを使う。 LDAPアカウントを使用する場合は後述。2012/8/4 10
  12. 12. サイバー系 RStudio 画面_  Desktop版, Server版どちらでも同じです。 「Tool」→「Options」 Workspaceとか で画面割は設定できます Source FilesとかPlotsとか Console2012/8/4 11
  13. 13. サイバー系 RStudio_右上のとこ  Projectを選べるので便利です。 rm(list=ls()); setwd(“~/hogehoge/Prj3”) とかってやんなくていいから、 さくさく切り替えられます。 これ2012/8/4 12
  14. 14. サイバー系 RStudio_Sourceパネル  Sourceの種類を選べるが有無を言わずR Markdown形式 を選ぶ。(Markdownについては後述) これ2012/8/4 13
  15. 15. サイバー系 RStudio_Sourceパネル  左下の クリックすると関数一覧が出現して、選択するこ とで関数にjumpできます。 これ2012/8/4 14
  16. 16. サイバー系 RStudio_Sourceパネル  ソース中で実行したいところを選択してRunボタン押すと 瞬時にConsoleにソースが転送されて実行されます ②Runボタン ①ここら辺のソースを 選択して2012/8/4 15
  17. 17. サイバー系 RStudio_Workspaceパネル  オブジェクト一覧が出てる(Consoleでls()したものと、 その中見がなんとなくわかるようなのが常に表示されて るのはありがたい) 例えばこれ クリックすると 中見が手軽に見れます2012/8/4 16
  18. 18. サイバー系 RStudio_FilesとかPlotsとか  デフォで右下のパネル  Plotsはplot()の内容が表示される。 矢印ボタンで過去にplotした図に 戻れるしZoomとかExportとか 駆使して好きなサイズの絵で保存 できる。  ?で出てくるHelpもここに出る。 helpはちょい見辛いかな  Filesはdir()の内容が表示されてる。 Server版はUpload機能もあり わざわざscpとかしなくていいから便利2012/8/4 17
  19. 19. サイバー系 (おまけ)RStudio Server特有の話  LDAP権限でログインしたい $sudo vi /etc/pam.d/rstudio #%PAM-1.0 auth requisite pam_succeed_if.so uid >= 500 quiet #追記 #auth required pam_unix.so nodelay #コメントアウト #account required pam_unix.so #コメントアウト auth required pam_ldap.so #追記 account required pam_ldap.so #追記2012/8/4 18
  20. 20. サイバー系 (おまけ)RStudio Server特有の話  使用するR本体を指定したい $sudo vi /etc/rstudio/rserver.conf rsession-which-r=/usr/lib64/R/bin/R ↑ここで使いたいVersionのRの場所を指定  利用するメモリ量を増やしたい(デフォルトは2G byte) $sudo vi /etc/rstudio/rserver.conf rsession-memory-limit-mb=24000 #再起動 $sudo /usr/lib/rstudio-server/bin/rstudio-server restart *ここら辺に載ってます http://rstudio.org/docs/server/configuration2012/8/4 19
  21. 21. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル2012/8/4 20
  22. 22. サイバー系 Knitrとは? knitr ≈ Sweave + cacheSweave + pgfSweave + weaver + animation::saveLatex + R2HTML::RweaveHTML + highlight::HighlightWeaveLatex + 0.2 * brew + 0.1 * SweaveListingUtils /) + more ///) /,.=゙"/ / i f ,.r="-‐つ____ こまけぇこたぁいいんだよ!! / / _,.-‐~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ 激しく優秀な / ノ il゙フ::::::⌒(__人__)⌒::::: \ レポーティング ,イ「ト、 ,!,!| |r┬-| | ツール in R / iトヾヽ_/ィ"\ `ー´ /2012/8/4 21
  23. 23. サイバー系 ちなみにKnitrを作った人、Yihui Xie Rでマインスイーパ できるライブラリ も作ってる! library(fun); mine_sweeper(width = 10, height = 10, mines = 20, text.cex = 2, cheat = FALSE, seed = NULL)2012/8/4 22
  24. 24. サイバー系 Reproducible Researchを心懸けるには 1. 「Reproducible Research」=「再現可能な研究」 データ解析の手順(コード)と結果が一つのファイル内でまと まってるとHappy 参考)RでReproducible Research by @sfchaosさん 2. 簡単な実現方法 RStudioでコーディングして、ソースをR Markdown形式 で保存 ↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓ knit HTMLによりhtml形式で出力 *Markdown・・・軽量マークアップ言語のひとつである。「読みやすく書きやす いプレーンテキストで書け、そして構造的に妥当なXHTML(もしくはHTML)に 変換することのできるフォーマット」として、John GruberとAaron Swartzに よって考案された。 wikipediaより2012/8/4 23
  25. 25. サイバー系 R Markdown記法例 ### 初めてのR Markdown レポートのタイトル ```{r} plot(1:10) ここの間にRのコードを書く ``` 記法の詳細は[ここ ](http://www.rstudio.org/docs/authoring/using_markdown)を見てね こんな風に、リンクを貼れたりもできる2012/8/4 24
  26. 26. サイバー系 R MarkdownのFAQ 1. warningがウザすぎてレポートが見辛い ‘’’{r, warning=FALSE} 2. Rのコードがレポートに無いほうがいい(結果のみがいい) ‘’’{r, echo=FALSE} 3. ggplot2で出力したはずの図が無い print(qplot(1:10)) 4. for文の中でplot(もしくはggplot)を何度か呼び出したはず なのに1枚の図しか出力されてない ```{r, fig.keep=‘all’}2012/8/4 25
  27. 27. サイバー系 R MarkdownのFAQ_Table編 1. data.frameをhtmlのtableみたいに表示させたい この場合はhwriter::hwrite()関数かxtable::xtable()関数がいいと思い ます。 ‘’’{r, results=‘asis’} print(xtable::xtable(iris), type=‘html’) ``` 2. テーブル中の値を左寄せ、もしくは右寄せにしたい xt <- xtable::xtable(iris) xtable::align(xt) <- rep("l", ncol(iris) + 1) print(xt, type="html") 3. テーブルの枠が表示されない これはcssを設定しなければいけません →次ページへ2012/8/4 26
  28. 28. サイバー系 R MarkdownのFAQ_Table編_枠表示編 テーブルの枠が表示されない デフォルトのmarkdown.cssのせいで表示されません。 Winの場合、C:¥Program Files¥RStudio¥resources¥markdown.css Linuxの場合、/usr/lib/rstudio-server/resources/markdown.css body, td { body { font-family: sans-serif; font-family: sans-serif; background-color: background-color: white; white; font-size: 12px; font-size: 12px; 書き換える margin: 8px; margin: 8px; } } td { : font-family: sans-serif; : font-size: 12px; table, td, th { margin: 8px; border: none; } } : : table, td, th { もしくは別ファイルでcss保存しておいて border: solid; options(rstudio.markdownToHTML = } function(inputFile, outputFile) { require(markdown) markdownToHTML(file=inputFile, output=outputFile, stylesheet=my.css) } )2012/8/4 27
  29. 29. サイバー系 (参考)Knit HTMLボタン押した時にやられていること 1. knit関数でRmdファイル→mdファイル作成 require(knitr) knit(input=‘sample.Rmd’, output=‘sample.md’) 2. markdownToHTML関数でmdファイル→htmlファイル 作成 require(markdown) markdownToHTML(file=‘sample.md’, output=‘sample.html’) 3. browseURL関数でブラウザ起動 utils::browseURL(paste(file://, file.path(getwd(),‘sample.html), sep=))2012/8/4 28
  30. 30. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル2012/8/4 29
  31. 31. サイバー系 Knit HTMLを実行  ソース書き上がったら「Knit HTML」ボタンを押す2012/8/4 30
  32. 32. サイバー系 Knit HTML実行中...  暫く待つ2012/8/4 31
  33. 33. サイバー系 Knit HTML実行結果  内蔵ブラウザでレポートが表示される! htmlでsaveするかRPubsにpublishするか選びましょう! htmlの保存 ブラウザへ RPUBへ2012/8/4 32
  34. 34. サイバー系 RPubへpublish  http://rpubs.com/wdkz/1076 コード及び結果はURL リンク先を見て下さい2012/8/4 33
  35. 35. サイバー系 チュートリアル其の弐(というか例)  http://rpubs.com/wdkz/1078 最終的なレポートがhtml形式なので、Rのplotやggplotじゃなくて Google Visualisation APIを利用するって手もあります。 コード及び結果はURL リンク先を見て下さい2012/8/4 34
  36. 36. サイバー系 まとめ 1. RStudio使いましょう! 2. R Markdownでコード保存しましょう! 3. &knitrのknit HTMLでレポーティングしましょう! 4. あわよくばRPubsで公開しましょう!2012/8/4 md 35

×