SlideShare a Scribd company logo
そろそろRStudioの話でもしてみようと思う


        2012/08/04
        Tokyo.R#25
          和田 計也

サイバー系
サイバー系


      はじめに



     ※この発表は個人の
     見解であり、所属す
     る組織の公式見解で
     はありません。

2012/8/4                 1
サイバー系


     自己紹介

  和田 計也(@wdkz)
            静岡県袋井市出身




  サイバー系企業でデータマイニングエンジニア職
            最近はレポーティング周りの仕事してます



  前職はバイオベンチャー
            バイオマーカ探索してた
            学生時代は枯草菌の研究




2012/8/4                                   2
サイバー系


      私はこうしてRStudioに乗り換えました

     従来
      エディタ(EmEditor) + RGUI   featuring コピペ



     現在
            RStudio


     乗り換えた理由
      括弧補完してくれたり、オブジェクトの一覧が表示され
       てるから迷子にならないし、data.frameの中を手軽に
       見れるし、plot図何枚も保持してくれてるし...
            Rmarkdownで記述してknitrでknit
             htmlして簡単にレポーティングできるから
2012/8/4                                               3
サイバー系


      今日お伝えしたいこと

    1. RStudio使いましょう!
    2. R Markdownでコード保存しましょう!
    3. knitrのknit HTMLでレポーティングしましょう!




2012/8/4                                       4
サイバー系


      今日のお話
    1. RStudioについて



    2. R markdownとかknitrとかについて



    3. チュートリアル



2012/8/4                                 5
サイバー系


      今日のお話
    1. RStudioについて



    2. R markdownとかknitrとかについて



    3. チュートリアル



2012/8/4                                 6
サイバー系


      RStudioとは?

     RのIDE(Integrated Development Environment)です

     サイト
            http://rstudio.org/


     スクショ→




2012/8/4                                             7
サイバー系


      Desktop版とServer版とあります

     Desktop版




     Server版

                              ・誰かがセットアップして
                              くれたら、みんな使える!
                              ・みんなでコードを共有で
                              きる!
                              ・linuxでしか使えない
                              libraryも使える!
                                 XML, RApache ...



2012/8/4                                             8
サイバー系


      インストール_どっちか選んでね

     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/server




2012/8/4                                                                                                9
サイバー系


      RStudioを起動してみる

     Desktop版
      アイコンをダブルクリック

     Server版
      ブラウザでhttp://xxx.xxx.xxx.xxx:8787

           ログイン画面
                            Firefox, Safari, Chrome以外のブラウザだと
                            以下の表示が出て使えない




    *ログインには、RStudioがインストールされたサーバのuserとpasswordを使う。
     LDAPアカウントを使用する場合は後述。
2012/8/4                                                       10
サイバー系


      RStudio 画面_

     Desktop版, Server版どちらでも同じです。




                                         「Tool」→「Options」
                         Workspaceとか      で画面割は設定できます



               Source




                        FilesとかPlotsとか
           Console




2012/8/4                                                    11
サイバー系


      RStudio_右上のとこ

     Projectを選べるので便利です。
      rm(list=ls()); setwd(“~/hogehoge/Prj3”)
      とかってやんなくていいから、
      さくさく切り替えられます。

                           これ




2012/8/4                                            12
サイバー系


      RStudio_Sourceパネル

     Sourceの種類を選べるが有無を言わずR Markdown形式
      を選ぶ。(Markdownについては後述)




            これ




2012/8/4                                 13
サイバー系


      RStudio_Sourceパネル

     左下の クリックすると関数一覧が出現して、選択するこ
      とで関数にjumpできます。




               これ

2012/8/4                           14
サイバー系


      RStudio_Sourceパネル

     ソース中で実行したいところを選択してRunボタン押すと
      瞬時にConsoleにソースが転送されて実行されます
                          ②Runボタン




                             ①ここら辺のソースを
                              選択して




2012/8/4                                  15
サイバー系


      RStudio_Workspaceパネル

    オブジェクト一覧が出てる(Consoleでls()したものと、
     その中見がなんとなくわかるようなのが常に表示されて
     るのはありがたい)

            例えばこれ
            クリックすると



           中見が手軽に見れます




2012/8/4                               16
サイバー系


      RStudio_FilesとかPlotsとか

     デフォで右下のパネル
          Plotsはplot()の内容が表示される。
           矢印ボタンで過去にplotした図に
           戻れるしZoomとかExportとか
           駆使して好きなサイズの絵で保存
           できる。

          ?で出てくるHelpもここに出る。
           helpはちょい見辛いかな




          Filesはdir()の内容が表示されてる。
           Server版はUpload機能もあり
           わざわざscpとかしなくていいから便利
2012/8/4                                17
サイバー系


      (おまけ)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
サイバー系


      (おまけ)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/configuration
2012/8/4                                                                  19
サイバー系


      今日のお話
    1. RStudioについて



    2. R markdownとかknitrとかについて



    3. チュートリアル



2012/8/4                             20
サイバー系


      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
サイバー系


      ちなみに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
サイバー系


      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
サイバー系


      R Markdown記法例

    ### 初めてのR Markdown
                                             レポートのタイトル
    ```{r}
    plot(1:10)             ここの間にRのコードを書く
    ```
    記法の詳細は[ここ
    ](http://www.rstudio.org/docs/authoring/using_markdown)を見てね



                  こんな風に、リンクを貼れたりもできる




2012/8/4                                                          24
サイバー系


      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
サイバー系


      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
サイバー系


     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
サイバー系


      (参考)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
サイバー系


      今日のお話
    1. RStudioについて



    2. R markdownとかknitrとかについて



    3. チュートリアル



2012/8/4                             29
サイバー系


      Knit HTMLを実行

   ソース書き上がったら「Knit HTML」ボタンを押す




2012/8/4                              30
サイバー系


      Knit HTML実行中...

   暫く待つ




2012/8/4                    31
サイバー系


      Knit HTML実行結果
   内蔵ブラウザでレポートが表示される!
    htmlでsaveするかRPubsにpublishするか選びましょう!


                              htmlの保存



                      ブラウザへ             RPUBへ




2012/8/4                                            32
サイバー系


      RPubへpublish

   http://rpubs.com/wdkz/1076
                                 コード及び結果はURL
                                 リンク先を見て下さい




2012/8/4                                       33
サイバー系


      チュートリアル其の弐(というか例)

   http://rpubs.com/wdkz/1078
  最終的なレポートがhtml形式なので、Rのplotやggplotじゃなくて
  Google Visualisation APIを利用するって手もあります。


                                 コード及び結果はURL
                                 リンク先を見て下さい




2012/8/4                                       34
サイバー系


      まとめ

    1.     RStudio使いましょう!
    2.     R Markdownでコード保存しましょう!
    3.     &knitrのknit HTMLでレポーティングしましょう!
    4.     あわよくばRPubsで公開しましょう!




2012/8/4
                    md                      35

More Related Content

What's hot

Rでピボットテーブル
RでピボットテーブルRでピボットテーブル
RでピボットテーブルYohei Sato
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Takeshi Mikami
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
 
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイントセグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
Naoto Tamiya
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
Deep Learning JP
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
nishio
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
Yusuke Kaneko
 
ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-Koichiro Gibo
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
Hiroshi Shimizu
 
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
cyberagent
 
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM) 一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング・ラボ)
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
Deep Learning JP
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
Yuki Morishita
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
takehikoihayashi
 

What's hot (20)

Rでピボットテーブル
RでピボットテーブルRでピボットテーブル
Rでピボットテーブル
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
 
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイントセグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
Kdd 2021 読み会(clustering for private interest-based advertising & learning a l...
 
ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
 
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM) 一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
 
Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界Apache tinkerpopとグラフデータベースの世界
Apache tinkerpopとグラフデータベースの世界
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 

Viewers also liked

knitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくするknitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくする
imuyaoti
 
HiRoshima.R#6 by imuyaoti
 HiRoshima.R#6 by imuyaoti HiRoshima.R#6 by imuyaoti
HiRoshima.R#6 by imuyaoti
imuyaoti
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
imuyaoti
 
Introduction to statistics
Introduction to statisticsIntroduction to statistics
Introduction to statistics
Kohta Ishikawa
 
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
Takashi Yamane
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
Nobuaki Oshiro
 

Viewers also liked (7)

RをAWSで使おう
RをAWSで使おうRをAWSで使おう
RをAWSで使おう
 
knitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくするknitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくする
 
HiRoshima.R#6 by imuyaoti
 HiRoshima.R#6 by imuyaoti HiRoshima.R#6 by imuyaoti
HiRoshima.R#6 by imuyaoti
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
 
Introduction to statistics
Introduction to statisticsIntroduction to statistics
Introduction to statistics
 
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
 

Similar to そろそろRStudioの話

Tokyo.R#16 wdkz
Tokyo.R#16 wdkzTokyo.R#16 wdkz
Tokyo.R#16 wdkz
Kazuya Wada
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Hideki Takase
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみようMasahiko Hashimoto
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
Rstudio事始め
Rstudio事始めRstudio事始め
Rstudio事始め
Takashi Yamane
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
 
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編Takafumi Inamori
 
Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介Osamu Habuka
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
magoroku Yamamoto
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
NTT DATA OSS Professional Services
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
20130203 oss-db-lpi
20130203 oss-db-lpi20130203 oss-db-lpi
20130203 oss-db-lpi
Shinichi Matsuda
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
Kazuko Itoda
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
Kazuya Wada
 

Similar to そろそろRStudioの話 (20)

Tokyo.R#16 wdkz
Tokyo.R#16 wdkzTokyo.R#16 wdkz
Tokyo.R#16 wdkz
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Rstudio事始め
Rstudio事始めRstudio事始め
Rstudio事始め
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編SIG-Audio準備会#2 オーディオツールの作り方 超入門編
SIG-Audio準備会#2 オーディオツールの作り方 超入門編
 
Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
20130203 oss-db-lpi
20130203 oss-db-lpi20130203 oss-db-lpi
20130203 oss-db-lpi
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
 

More from Kazuya Wada

オンラインTVサービスの分析事例
オンラインTVサービスの分析事例オンラインTVサービスの分析事例
オンラインTVサービスの分析事例
Kazuya Wada
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話
Kazuya Wada
 
道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz
Kazuya Wada
 
ハイレゾの話
ハイレゾの話ハイレゾの話
ハイレゾの話
Kazuya Wada
 
Shiny-Serverあれこれ
Shiny-ServerあれこれShiny-Serverあれこれ
Shiny-Serverあれこれ
Kazuya Wada
 
データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkzデータサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkz
Kazuya Wada
 
R-3.0.0でGLM
R-3.0.0でGLMR-3.0.0でGLM
R-3.0.0でGLM
Kazuya Wada
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShiny
Kazuya Wada
 
JuliaでGLM
JuliaでGLMJuliaでGLM
JuliaでGLM
Kazuya Wada
 
Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~
Kazuya Wada
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Kazuya Wada
 
Rでウォーリを探してみた
Rでウォーリを探してみたRでウォーリを探してみた
Rでウォーリを探してみた
Kazuya Wada
 
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
 

More from Kazuya Wada (13)

オンラインTVサービスの分析事例
オンラインTVサービスの分析事例オンラインTVサービスの分析事例
オンラインTVサービスの分析事例
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話
 
道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz道玄坂Lt#2 wdkz
道玄坂Lt#2 wdkz
 
ハイレゾの話
ハイレゾの話ハイレゾの話
ハイレゾの話
 
Shiny-Serverあれこれ
Shiny-ServerあれこれShiny-Serverあれこれ
Shiny-Serverあれこれ
 
データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkzデータサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkz
 
R-3.0.0でGLM
R-3.0.0でGLMR-3.0.0でGLM
R-3.0.0でGLM
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShiny
 
JuliaでGLM
JuliaでGLMJuliaでGLM
JuliaでGLM
 
Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~Rで触れる日本経済~RでVAR編~
Rで触れる日本経済~RでVAR編~
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
 
Rでウォーリを探してみた
Rでウォーリを探してみたRでウォーリを探してみた
Rでウォーリを探してみた
 
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
 

そろそろRStudioの話

  • 1. そろそろRStudioの話でもしてみようと思う 2012/08/04 Tokyo.R#25 和田 計也 サイバー系
  • 2. サイバー系 はじめに ※この発表は個人の 見解であり、所属す る組織の公式見解で はありません。 2012/8/4 1
  • 3. サイバー系 自己紹介  和田 計也(@wdkz)  静岡県袋井市出身  サイバー系企業でデータマイニングエンジニア職  最近はレポーティング周りの仕事してます  前職はバイオベンチャー  バイオマーカ探索してた  学生時代は枯草菌の研究 2012/8/4 2
  • 4. サイバー系 私はこうしてRStudioに乗り換えました  従来  エディタ(EmEditor) + RGUI featuring コピペ  現在  RStudio  乗り換えた理由  括弧補完してくれたり、オブジェクトの一覧が表示され てるから迷子にならないし、data.frameの中を手軽に 見れるし、plot図何枚も保持してくれてるし...  Rmarkdownで記述してknitrでknit htmlして簡単にレポーティングできるから 2012/8/4 3
  • 5. サイバー系 今日お伝えしたいこと 1. RStudio使いましょう! 2. R Markdownでコード保存しましょう! 3. knitrのknit HTMLでレポーティングしましょう! 2012/8/4 4
  • 6. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル 2012/8/4 5
  • 7. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル 2012/8/4 6
  • 8. サイバー系 RStudioとは?  RのIDE(Integrated Development Environment)です  サイト  http://rstudio.org/  スクショ→ 2012/8/4 7
  • 9. サイバー系 Desktop版とServer版とあります  Desktop版  Server版 ・誰かがセットアップして くれたら、みんな使える! ・みんなでコードを共有で きる! ・linuxでしか使えない libraryも使える! XML, RApache ... 2012/8/4 8
  • 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/server 2012/8/4 9
  • 11. サイバー系 RStudioを起動してみる  Desktop版  アイコンをダブルクリック  Server版  ブラウザでhttp://xxx.xxx.xxx.xxx:8787 ログイン画面 Firefox, Safari, Chrome以外のブラウザだと 以下の表示が出て使えない *ログインには、RStudioがインストールされたサーバのuserとpasswordを使う。 LDAPアカウントを使用する場合は後述。 2012/8/4 10
  • 12. サイバー系 RStudio 画面_  Desktop版, Server版どちらでも同じです。 「Tool」→「Options」 Workspaceとか で画面割は設定できます Source FilesとかPlotsとか Console 2012/8/4 11
  • 13. サイバー系 RStudio_右上のとこ  Projectを選べるので便利です。 rm(list=ls()); setwd(“~/hogehoge/Prj3”) とかってやんなくていいから、 さくさく切り替えられます。 これ 2012/8/4 12
  • 14. サイバー系 RStudio_Sourceパネル  Sourceの種類を選べるが有無を言わずR Markdown形式 を選ぶ。(Markdownについては後述) これ 2012/8/4 13
  • 15. サイバー系 RStudio_Sourceパネル  左下の クリックすると関数一覧が出現して、選択するこ とで関数にjumpできます。 これ 2012/8/4 14
  • 16. サイバー系 RStudio_Sourceパネル  ソース中で実行したいところを選択してRunボタン押すと 瞬時にConsoleにソースが転送されて実行されます ②Runボタン ①ここら辺のソースを 選択して 2012/8/4 15
  • 17. サイバー系 RStudio_Workspaceパネル  オブジェクト一覧が出てる(Consoleでls()したものと、 その中見がなんとなくわかるようなのが常に表示されて るのはありがたい) 例えばこれ クリックすると 中見が手軽に見れます 2012/8/4 16
  • 18. サイバー系 RStudio_FilesとかPlotsとか  デフォで右下のパネル  Plotsはplot()の内容が表示される。 矢印ボタンで過去にplotした図に 戻れるしZoomとかExportとか 駆使して好きなサイズの絵で保存 できる。  ?で出てくるHelpもここに出る。 helpはちょい見辛いかな  Filesはdir()の内容が表示されてる。 Server版はUpload機能もあり わざわざscpとかしなくていいから便利 2012/8/4 17
  • 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. サイバー系 (おまけ)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/configuration 2012/8/4 19
  • 21. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル 2012/8/4 20
  • 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. サイバー系 ちなみに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. サイバー系 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. サイバー系 R Markdown記法例 ### 初めてのR Markdown レポートのタイトル ```{r} plot(1:10) ここの間にRのコードを書く ``` 記法の詳細は[ここ ](http://www.rstudio.org/docs/authoring/using_markdown)を見てね こんな風に、リンクを貼れたりもできる 2012/8/4 24
  • 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. サイバー系 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. サイバー系 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. サイバー系 (参考)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. サイバー系 今日のお話 1. RStudioについて 2. R markdownとかknitrとかについて 3. チュートリアル 2012/8/4 29
  • 31. サイバー系 Knit HTMLを実行  ソース書き上がったら「Knit HTML」ボタンを押す 2012/8/4 30
  • 32. サイバー系 Knit HTML実行中...  暫く待つ 2012/8/4 31
  • 33. サイバー系 Knit HTML実行結果  内蔵ブラウザでレポートが表示される! htmlでsaveするかRPubsにpublishするか選びましょう! htmlの保存 ブラウザへ RPUBへ 2012/8/4 32
  • 34. サイバー系 RPubへpublish  http://rpubs.com/wdkz/1076 コード及び結果はURL リンク先を見て下さい 2012/8/4 33
  • 35. サイバー系 チュートリアル其の弐(というか例)  http://rpubs.com/wdkz/1078 最終的なレポートがhtml形式なので、Rのplotやggplotじゃなくて Google Visualisation APIを利用するって手もあります。 コード及び結果はURL リンク先を見て下さい 2012/8/4 34
  • 36. サイバー系 まとめ 1. RStudio使いましょう! 2. R Markdownでコード保存しましょう! 3. &knitrのknit HTMLでレポーティングしましょう! 4. あわよくばRPubsで公開しましょう! 2012/8/4 md 35