SlideShare a Scribd company logo
1 of 36
そろそろ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

[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object DetectionDeep Learning JP
 
学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)Nobuyuki Umetani
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]daiki hojo
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門hoxo_m
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解Koji Terada
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量takaya imai
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRDaisuke Yoneoka
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
Rでisomap(多様体学習のはなし)
Rでisomap(多様体学習のはなし)Rでisomap(多様体学習のはなし)
Rでisomap(多様体学習のはなし)Kohta Ishikawa
 
ROS2勉強会 4章前半
ROS2勉強会 4章前半ROS2勉強会 4章前半
ROS2勉強会 4章前半tomohiro kuwano
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールhoxo_m
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日Kitsukawa Yuki
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII
 
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピングLiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピングTakuya Minagawa
 

What's hot (20)

[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Rでisomap(多様体学習のはなし)
Rでisomap(多様体学習のはなし)Rでisomap(多様体学習のはなし)
Rでisomap(多様体学習のはなし)
 
ROS2勉強会 4章前半
ROS2勉強会 4章前半ROS2勉強会 4章前半
ROS2勉強会 4章前半
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 
LiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピングLiDAR点群と画像とのマッピング
LiDAR点群と画像とのマッピング
 

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 imuyaotiimuyaoti
 
for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力imuyaoti
 
Introduction to statistics
Introduction to statisticsIntroduction to statistics
Introduction to statisticsKohta 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.5Nobuaki 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の話

Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Kazuya Wada
 
自分色の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
 
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
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
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
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶHiroshi Oyamada
 

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~
 
自分色の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使ってみた
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 

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 wdkzKazuya Wada
 
ハイレゾの話
ハイレゾの話ハイレゾの話
ハイレゾの話Kazuya Wada
 
Shiny-Serverあれこれ
Shiny-ServerあれこれShiny-Serverあれこれ
Shiny-ServerあれこれKazuya Wada
 
データサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkzデータサイエンティストカジュアルトーク by wdkz
データサイエンティストカジュアルトーク by wdkzKazuya Wada
 
はじめてのShiny
はじめてのShinyはじめてのShiny
はじめてのShinyKazuya 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