SlideShare a Scribd company logo
1 of 90
Download to read offline
10分で分かる
              R言語入門 ver2.2


                           大城信晃
                   2013/02/23 TokyoR#29
13年2月23日土曜日
開催情報
              ATND
              http://atnd.org/events/36417


              セキココ
              http://sekico.co/zaseki/96



13年2月23日土曜日
アジェンダ

              • 自己紹介とお知らせ
              • Rって何
              • Rの使い方
              • Rの資料

13年2月23日土曜日
アジェンダ

              • 自己紹介とお知らせ
              • Rって何
              • Rの使い方
              • Rの資料

13年2月23日土曜日
自己紹介
• 名前:大城信晃
• Twitter:doradora09
• 職業:Webエンジニア
• R:勉強中
• マイブーム:
 • カクテル作り
 • カメラが気になる

13年2月23日土曜日
自己紹介
• 名前:大城信晃
• Twitter:doradora09
• 職業:Webエンジニア
• R:勉強中
• マイブーム:
 • カクテル作り -> 冬場はお休み
 • カメラが気になる

13年2月23日土曜日
自己紹介
• 名前:大城信晃
• Twitter:doradora09
• 職業:Webエンジニア
• R:勉強中
• マイブーム:
 • カクテル作り -> 冬場はお休み
 • カメラが気になる -> 買いました!

13年2月23日土曜日
カメラ買いました!




              • Panasonic GF3(手前)
13年2月23日土曜日
              • PENTAX-Kr (奥)
風景、夜景




13年2月23日土曜日
料理、お酒




13年2月23日土曜日
プリキュアにハマるおっさん達




13年2月23日土曜日
山




13年2月23日土曜日
自己紹介
    • 名前:大城信晃
    • Twitter:doradora09
    • 職業:Webエンジニア
    • R:勉強中
    • マイブーム:
     • カクテル作り -> 冬場はお休み
     • カメラが気になる -> 買いました!
       • 軽登山 <- New!!
13年2月23日土曜日
では本題に

              • 自己紹介とお知らせ
              • Rって何
              • Rの使い方
              • Rの資料

13年2月23日土曜日
R言語(アールげんご)は、オープンソ
              ースでフリーソフトウェアの統計解
              析向けプログラミング言語、及びそ
              の開発実行環境である。
                       Wikipediaより引用


13年2月23日土曜日
オープンソース    個人が開発に参加できる
              フリーソフトウェア     タダで使える
               統計解析向け     関連パッケージが豊富
              プログラミング言語    ロジックが記述可能
               開発実行環境       Rコンソール


13年2月23日土曜日
こんな方におすすめ

              • 色々な統計手法を試してみたい方
              • エクセルでは物足りない方



13年2月23日土曜日
での使われ方

              • プロトタイプをRで作って検証
              • PythonやC++で実装


               GoogleとFacebookではRをどうやって使っているのか?
                 http://pracmper.blogspot.jp/2010/01/googlefacebookr.html



13年2月23日土曜日
用途で分類
                  プログラミング言語寄り




    実務利用                            プロトタイピング

               業務専用
              パッケージ

                      直感的な操作(GUI)
13年2月23日土曜日
用途で分類
                  プログラミング言語寄り

                  モデル検証
                   /実装



    実務利用                            統計に特化
                                    プロトタイピング

               業務専用
              パッケージ

                      直感的な操作(GUI)
13年2月23日土曜日
他言語との比較
                  特徴    価格    大規模データ      速度
                パッケージ            △
                        無料                △
                 が豊富           (メモリ依存)


      エクセル       直感的    1万∼
                               (約100万行)

                 大規模
          SAS         数十万∼       ○        ○
                データ処理
                  高速   無料∼
          C++                   実装次第      ◎
                開発コスト高 数万

13年2月23日土曜日
アジェンダ

              • 自己紹介とお知らせ
              • Rって何
              • Rの使い方
              • Rの資料

13年2月23日土曜日
インストール
                        http://cran.md.tsukuba.ac.jp/
              Windows
                             bin/windows/base/

               Mac      http://cran.md.tsukuba.ac.jp/


               Linux    http://cran.md.tsukuba.ac.jp/




13年2月23日土曜日
Rコンソール起動




13年2月23日土曜日
Rコンソール起動



                  ココに処理を
                  記述していく



13年2月23日土曜日
処理の記述



              3+5 = 8
              10-7 = 3



13年2月23日土曜日
解析の流れで説明
                データ

                処理

                レポート
13年2月23日土曜日
解析の流れ
              変数
                   データ
              配列
              行列
                    処理

                   レポート
13年2月23日土曜日
変数      値を入れる箱
              > hako <- 10

              > hako

              [1] 10




13年2月23日土曜日
変数      値を入れる箱
              > hako <- 10
                             変数に値を入れる
              > hako
                             左矢印のイメージ
              [1] 10




13年2月23日土曜日
変数      値を入れる箱
              > hako <- 10
                             変数名を打つと
              > hako
                              中の値が出る
              [1] 10




13年2月23日土曜日
変数      値を入れる箱
              > hako <- 10

              > hako

              [1] 10

              > hako * 2     変数に対して
              [1] 20         処理(かけ算)


13年2月23日土曜日
配列 複数の値をまとめる

              > array <- c(10,20,30)

              > array

              [1] 10 20 30

              > array * 2

              [1] 20 40 60


13年2月23日土曜日
配列 複数の値をまとめる

              > array <- c(10,20,30)

              > array
                                       3つの値を
              [1] 10 20 30             配列に格納
              > array * 2

              [1] 20 40 60


13年2月23日土曜日
配列 複数の値をまとめる

              > array <- c(10,20,30)

              > array
                                       値の確認
              [1] 10 20 30

              > array * 2

              [1] 20 40 60


13年2月23日土曜日
配列 複数の値をまとめる

              > array <- c(10,20,30)

              > array

              [1] 10 20 30
                                        処理は
              > array * 2
                                       配列全体に
              [1] 20 40 60             適用される


13年2月23日土曜日
配列 複数の値をまとめる

              > array[1]    配列[番号]
                           で1個ずつ値を
              [1] 10
                            取り出せる
              > array[2]

              [1] 20

              > array[3]

              [1] 30
13年2月23日土曜日
配列 複数の値をまとめる

              > array[1]

              [1] 10

              > array[2]
                           2個目
              [1] 20

              > array[3]

              [1] 30
13年2月23日土曜日
配列 複数の値をまとめる

              > array[1]

              [1] 10

              > array[2]

              [1] 20

              > array[3]
                           3個目
              [1] 30
13年2月23日土曜日
行列        2次元の配列
          > array2 <- matrix(c(10,20,30,  

                               40,50,60), 2, 3)

          > array2

              [,1] [,2] [,3]

          [1,] 10 30 50

          [2,] 20 40 60

13年2月23日土曜日
行列        2次元の配列
          > array2 <- matrix(c(10,20,30,  

                               40,50,60), 2, 3)

          > array2             matrixという
              [,1] [,2] [,3]   関数を利用して
                                  作る
          [1,] 10 30 50

          [2,] 20 40 60
13年2月23日土曜日
行列        2次元の配列
          > array2 <- matrix(c(10,20,30,  

                               40,50,60), 2, 3)

          > array2
                                  2行3列の
              [,1] [,2] [,3]       行列
          [1,] 10 30 50

          [2,] 20 40 60

13年2月23日土曜日
行列      各要素の指定
          > array2[1,1]
                          1行1列を
          [1] 10           指定
          > array2[1,]

          [1] 10 30 50

          > array2[,1]

          [1] 10 20

13年2月23日土曜日
行列      各要素の指定
          > array2[1,1]

          [1] 10

          > array2[1,]    1行目全体
                           を指定
          [1] 10 30 50

          > array2[,1]

          [1] 10 20

13年2月23日土曜日
行列      各要素の指定
          > array2[1,1]

          [1] 10

          > array2[1,]

          [1] 10 30 50

          > array2[,1]    1列目全体
          [1] 10 20        を指定

13年2月23日土曜日
解析の流れ
              変数
                    データ
              配列
                           関数     行
              行列
                     処理    自作関数
              CSV

                    レポート
13年2月23日土曜日
関数   処理の呼び出し

         • 関数は複数の処理をまとめたもの
         • 関数名(引数) という書き方で呼び出す
          • 様々な計算が手軽に実行できる


13年2月23日土曜日
関数     処理の呼び出し
               目的      関数名と書式           使い方
              データの結合    C(データ)       C( C , B , B )
               合計      sum(データ)      sum(10,20,30)
              個数を求める   length(データ)   length(array)
               平均      mean(データ)      mean(array)
               標準偏差     sd(データ)        sd(array)
               ・・・        ・・・           ・・・


13年2月23日土曜日
関数    合計を求める
          > array

          [1] 10 20 30

          > sum(array)

          [1] 60



13年2月23日土曜日
関数    合計を求める
          > array         先ほどの
          [1] 10 20 30   配列array

          > sum(array)

          [1] 60



13年2月23日土曜日
関数    合計を求める
          > array

          [1] 10 20 30
                          関数名(引数)
          > sum(array)
                         で処理呼び出し
          [1] 60



13年2月23日土曜日
関数    合計を求める
          > array

          [1] 10 20 30

          > sum(array)
                         処理結果が
          [1] 60         出力される



13年2月23日土曜日
関数        合計を求める
          > array2

              [,1] [,2] [,3]

          [1,] 10 30 50        先ほどの行列を
                                渡した場合
          [2,] 20 40 60



          > sum(array2)

          [1] 210
13年2月23日土曜日
関数        合計を求める
          > array2

              [,1] [,2] [,3]

          [1,] 10 30 50

          [2,] 20 40 60



          > sum(array2)         合計値が
                               表示される
          [1] 210
13年2月23日土曜日
変数 関数               結果を格納


          > ret <- sum(array2)

          > ret
                          処理結果を
          [1] 210         変数に格納



13年2月23日土曜日
変数 関数               結果を格納


          > ret <- sum(array2)

          > ret            合計値の
          [1] 210           確認




13年2月23日土曜日
解析の流れ
              変数
                    データ
              配列
                           関数     行
              行列
                     処理    自作関数
              CSV

                    レポート
13年2月23日土曜日
CSV 関数 CSV読み込み

         • 変数に毎回データを手入力するのは面倒
         • CSV形式(カンマ区切り)ファイルを読み
              込む関数がある

         • CSV形式であればエクセル等と相互にデ
              ータをやりとり出来る



13年2月23日土曜日
CSV 関数 CSV読み込み
          > hawks <- read.csv("hawks.csv")



          > hawks

              height salary

          1     173 17000

          2     178 14000

          3     180 9000
13年2月23日土曜日
CSV 関数 CSV読み込み
          > hawks <- read.csv("hawks.csv")



          > hawks
                               read.csv関数に
              height salary   hawks.csvという
                               CSVファイルを
          1     173 17000
                                   渡して
          2     178 14000        変数に代入
          3     180 9000
13年2月23日土曜日
CSV 関数 CSV読み込み
          > hawks <- read.csv("hawks.csv")



          > hawks

              height salary
                                 CSVファイルの
          1     173 17000
                                   変数への
          2     178 14000         読み込みが
          3     180 9000          確認できる
13年2月23日土曜日
解析の流れ
              変数
                    データ
              配列
                           関数     行
              行列
                     処理    自作関数
              CSV

                    レポート
13年2月23日土曜日
自作関数           自分で関数を作る


              • 関数は自分で定義することも可能
              • 繰り返し使う処理は自作関数にする


13年2月23日土曜日
自作関数              自分で関数を作る
    > varp <- function(x) {

              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult

       }

    > varp(array)

    [1] 66.66667

13年2月23日土曜日
自作関数              自分で関数を作る
    > varp <- function(x) {                関数の定義
              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult
                           関数名 <- function (引数) {
       }
                                    処理
    > varp(array)          }
    [1] 66.66667

13年2月23日土曜日
自作関数              自分で関数を作る
    > varp <- function(x) {                  関数名
              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult
                           関数名 <- function (引数) {
       }
                                    処理
    > varp(array)          }
    [1] 66.66667

13年2月23日土曜日
自作関数              自分で関数を作る
                                            引数
    > varp <- function(x) {
                                         (変数を渡す)
              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult
                           関数名 <- function (引数) {
       }
                                    処理
    > varp(array)          }
    [1] 66.66667

13年2月23日土曜日
自作関数              自分で関数を作る
                                              処理を
    > varp <- function(x) {                  まとめる
              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult

       }
                           関数名 <- function (引数) {
    > varp(array)                   処理
    [1] 66.66667           }

13年2月23日土曜日
自作関数              自分で関数を作る
    > varp <- function(x) {

              retsult <- var(x) * (length(x) - 1) / length(x)

              retsult

       }

    > varp(array)                関数にまとめられた
                                 処理が実行される
    [1] 66.66667
                                 (標本分散の算出)
13年2月23日土曜日
解析の流れ
              変数
                    データ
              配列
                           関数      行
              行列
                     処理    自作関数
              CSV          パッケージ

                    レポート   作図
13年2月23日土曜日
パッケージ
                 関数をまとめたもの

              • 複数の関数をまとめたもの
              • 様々なパッケージがCRANというシステ
               ムにて無料公開されている

              • 自作のパッケージも公開できる

13年2月23日土曜日
パッケージ
                 外部パッケージ
  作図


    > install.packages( ggplot2 )

    > library("ggplot2")              CRANから
                                     パッケージ
                                    ダウンロード&
                                     インストール

13年2月23日土曜日
パッケージ
                 外部パッケージ
  作図


    > install.packages( ggplot2 )
                                パッケージを
    > library("ggplot2")
                                  ロード




13年2月23日土曜日
パッケージ
                    外部パッケージ
  作図



       a <- 1:10

       b <- a^2         新たに
                      qplot関数が
       qplot(a,b)
                      使えるように
                        なった

13年2月23日土曜日
パッケージ
                    qplot実行結果
  作図



       a <- 1:10

       b <- a^2

       qplot(a,b)




13年2月23日土曜日
パッケージ
                    その他作図関数
  作図

         • 標準の関数でも作図可能
               目的      関数名と書式         使い方
              ヒストグラム   hist(データ)     hist(array)
               散布図      plot(x, y)    plot(a,b)
               ・・・       ・・・           ・・・


13年2月23日土曜日
一連の作業が実施可能
              データ

              処理

              レポート
13年2月23日土曜日
アジェンダ

              • 自己紹介とお知らせ
              • Rって何
              • Rの使い方
              • Rの資料

13年2月23日土曜日
CRAN Task Viws
              • Rには2000以上パッケージがある
              • 用途別におすすめパッケージを紹介
              http://cran.r-project.org/web/views/




13年2月23日土曜日
seekR
              • R言語用検索エンジン
               http://seekr.jp/




13年2月23日土曜日
RjpWiki
              • R言語のWiki
               http://www.okada.jp.org/RWiki/




13年2月23日土曜日
Rコミュニティ発表資料
              • Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ
       http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage
       「勉強会発表内容一覧」のリンクから




13年2月23日土曜日
RとSQLの対応付け
              • SQLが分かる人は一読の価値有り
              http://d.hatena.ne.jp/a_bicky/20110529/1306667230




13年2月23日土曜日
R-Chart
              • Rでの作図のサンプルが多数ある
               http://www.r-chart.com/




13年2月23日土曜日
まとめ

              • Rは無料の統計解析ソフトでパッケー
               ジが豊富

              • データ解析からレポートまで利用可能
              • Web上の資料も充実してます

13年2月23日土曜日
ご清聴ありがとうございました




13年2月23日土曜日
質疑応答



13年2月23日土曜日
予備資料



13年2月23日土曜日
連携も可能
                  プログラミング言語寄り
                   (カスタマイズ可能)
                      .C()関数




    実務利用                          RExcel
                                  プロトタイピング

               業務専用
              パッケージ

                  直感的な操作(用途は限定)
13年2月23日土曜日
イケメンツールRStudio




13年2月23日土曜日

More Related Content

Viewers also liked

10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
15 0117 r言語活用事例-外部公開用
15 0117 r言語活用事例-外部公開用15 0117 r言語活用事例-外部公開用
15 0117 r言語活用事例-外部公開用Nobuaki Oshiro
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用Nobuaki Oshiro
 
10分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_090610分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_0906Nobuaki Oshiro
 
10分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.410分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.4Nobuaki Oshiro
 
10分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.710分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.7Nobuaki Oshiro
 
10分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 610分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 6Nobuaki Oshiro
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5Nobuaki Oshiro
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 

Viewers also liked (11)

10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
15 0117 r言語活用事例-外部公開用
15 0117 r言語活用事例-外部公開用15 0117 r言語活用事例-外部公開用
15 0117 r言語活用事例-外部公開用
 
Survival analysis0702
Survival analysis0702Survival analysis0702
Survival analysis0702
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
 
10分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_090610分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_0906
 
10分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.410分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.4
 
10分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.710分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.7
 
10分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 610分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 6
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 

More from Nobuaki Oshiro

20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー
20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー
20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリーNobuaki Oshiro
 
20170909 reafletでお手軽可視化 on_r_20分ver_up用
20170909 reafletでお手軽可視化 on_r_20分ver_up用20170909 reafletでお手軽可視化 on_r_20分ver_up用
20170909 reafletでお手軽可視化 on_r_20分ver_up用Nobuaki Oshiro
 
20170826 fukuoka.r告知_reafletでお手軽可視化_on_r
20170826 fukuoka.r告知_reafletでお手軽可視化_on_r20170826 fukuoka.r告知_reafletでお手軽可視化_on_r
20170826 fukuoka.r告知_reafletでお手軽可視化_on_rNobuaki Oshiro
 
20170707 rでkaggle入門
20170707 rでkaggle入門20170707 rでkaggle入門
20170707 rでkaggle入門Nobuaki Oshiro
 
20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオン20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオンNobuaki Oshiro
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_ltNobuaki Oshiro
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010Nobuaki Oshiro
 
15 0117 kh-coderご紹介
15 0117 kh-coderご紹介15 0117 kh-coderご紹介
15 0117 kh-coderご紹介Nobuaki Oshiro
 
Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33Nobuaki Oshiro
 
Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 

More from Nobuaki Oshiro (12)

20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー
20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー
20181117_データ分析プロジェクトの流れを理解する_PDCAとKPIツリー
 
20170909 reafletでお手軽可視化 on_r_20分ver_up用
20170909 reafletでお手軽可視化 on_r_20分ver_up用20170909 reafletでお手軽可視化 on_r_20分ver_up用
20170909 reafletでお手軽可視化 on_r_20分ver_up用
 
20170826 fukuoka.r告知_reafletでお手軽可視化_on_r
20170826 fukuoka.r告知_reafletでお手軽可視化_on_r20170826 fukuoka.r告知_reafletでお手軽可視化_on_r
20170826 fukuoka.r告知_reafletでお手軽可視化_on_r
 
20170707 rでkaggle入門
20170707 rでkaggle入門20170707 rでkaggle入門
20170707 rでkaggle入門
 
20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオン20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオン
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
15 0117 kh-coderご紹介
15 0117 kh-coderご紹介15 0117 kh-coderご紹介
15 0117 kh-coderご紹介
 
Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33Doradora09 lt tokyo_r33
Doradora09 lt tokyo_r33
 
Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
Tokyor24 doradora09
Tokyor24 doradora09Tokyor24 doradora09
Tokyor24 doradora09
 

10分で分かるr言語入門ver2.2 13 0223

  • 1. 10分で分かる R言語入門 ver2.2 大城信晃 2013/02/23 TokyoR#29 13年2月23日土曜日
  • 2. 開催情報 ATND http://atnd.org/events/36417 セキココ http://sekico.co/zaseki/96 13年2月23日土曜日
  • 3. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年2月23日土曜日
  • 4. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年2月23日土曜日
  • 5. 自己紹介 • 名前:大城信晃 • Twitter:doradora09 • 職業:Webエンジニア • R:勉強中 • マイブーム: • カクテル作り • カメラが気になる 13年2月23日土曜日
  • 6. 自己紹介 • 名前:大城信晃 • Twitter:doradora09 • 職業:Webエンジニア • R:勉強中 • マイブーム: • カクテル作り -> 冬場はお休み • カメラが気になる 13年2月23日土曜日
  • 7. 自己紹介 • 名前:大城信晃 • Twitter:doradora09 • 職業:Webエンジニア • R:勉強中 • マイブーム: • カクテル作り -> 冬場はお休み • カメラが気になる -> 買いました! 13年2月23日土曜日
  • 8. カメラ買いました! • Panasonic GF3(手前) 13年2月23日土曜日 • PENTAX-Kr (奥)
  • 13. 自己紹介 • 名前:大城信晃 • Twitter:doradora09 • 職業:Webエンジニア • R:勉強中 • マイブーム: • カクテル作り -> 冬場はお休み • カメラが気になる -> 買いました! • 軽登山 <- New!! 13年2月23日土曜日
  • 14. では本題に • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年2月23日土曜日
  • 15. R言語(アールげんご)は、オープンソ ースでフリーソフトウェアの統計解 析向けプログラミング言語、及びそ の開発実行環境である。 Wikipediaより引用 13年2月23日土曜日
  • 16. オープンソース 個人が開発に参加できる フリーソフトウェア タダで使える 統計解析向け 関連パッケージが豊富 プログラミング言語 ロジックが記述可能 開発実行環境 Rコンソール 13年2月23日土曜日
  • 17. こんな方におすすめ • 色々な統計手法を試してみたい方 • エクセルでは物足りない方 13年2月23日土曜日
  • 18. での使われ方 • プロトタイプをRで作って検証 • PythonやC++で実装 GoogleとFacebookではRをどうやって使っているのか? http://pracmper.blogspot.jp/2010/01/googlefacebookr.html 13年2月23日土曜日
  • 19. 用途で分類 プログラミング言語寄り 実務利用 プロトタイピング 業務専用 パッケージ 直感的な操作(GUI) 13年2月23日土曜日
  • 20. 用途で分類 プログラミング言語寄り モデル検証 /実装 実務利用 統計に特化 プロトタイピング 業務専用 パッケージ 直感的な操作(GUI) 13年2月23日土曜日
  • 21. 他言語との比較 特徴 価格 大規模データ 速度 パッケージ △ 無料 △ が豊富 (メモリ依存) エクセル 直感的 1万∼ (約100万行) 大規模 SAS 数十万∼ ○ ○ データ処理 高速 無料∼ C++ 実装次第 ◎ 開発コスト高 数万 13年2月23日土曜日
  • 22. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年2月23日土曜日
  • 23. インストール http://cran.md.tsukuba.ac.jp/ Windows bin/windows/base/ Mac http://cran.md.tsukuba.ac.jp/ Linux http://cran.md.tsukuba.ac.jp/ 13年2月23日土曜日
  • 25. Rコンソール起動 ココに処理を 記述していく 13年2月23日土曜日
  • 26. 処理の記述 3+5 = 8 10-7 = 3 13年2月23日土曜日
  • 27. 解析の流れで説明 データ 処理 レポート 13年2月23日土曜日
  • 28. 解析の流れ 変数 データ 配列 行列 処理 レポート 13年2月23日土曜日
  • 29. 変数 値を入れる箱 > hako <- 10 > hako [1] 10 13年2月23日土曜日
  • 30. 変数 値を入れる箱 > hako <- 10 変数に値を入れる > hako 左矢印のイメージ [1] 10 13年2月23日土曜日
  • 31. 変数 値を入れる箱 > hako <- 10 変数名を打つと > hako 中の値が出る [1] 10 13年2月23日土曜日
  • 32. 変数 値を入れる箱 > hako <- 10 > hako [1] 10 > hako * 2 変数に対して [1] 20 処理(かけ算) 13年2月23日土曜日
  • 33. 配列 複数の値をまとめる > array <- c(10,20,30) > array [1] 10 20 30 > array * 2 [1] 20 40 60 13年2月23日土曜日
  • 34. 配列 複数の値をまとめる > array <- c(10,20,30) > array 3つの値を [1] 10 20 30 配列に格納 > array * 2 [1] 20 40 60 13年2月23日土曜日
  • 35. 配列 複数の値をまとめる > array <- c(10,20,30) > array 値の確認 [1] 10 20 30 > array * 2 [1] 20 40 60 13年2月23日土曜日
  • 36. 配列 複数の値をまとめる > array <- c(10,20,30) > array [1] 10 20 30 処理は > array * 2 配列全体に [1] 20 40 60 適用される 13年2月23日土曜日
  • 37. 配列 複数の値をまとめる > array[1] 配列[番号] で1個ずつ値を [1] 10 取り出せる > array[2] [1] 20 > array[3] [1] 30 13年2月23日土曜日
  • 38. 配列 複数の値をまとめる > array[1] [1] 10 > array[2] 2個目 [1] 20 > array[3] [1] 30 13年2月23日土曜日
  • 39. 配列 複数の値をまとめる > array[1] [1] 10 > array[2] [1] 20 > array[3] 3個目 [1] 30 13年2月23日土曜日
  • 40. 行列 2次元の配列 > array2 <- matrix(c(10,20,30,   40,50,60), 2, 3) > array2 [,1] [,2] [,3] [1,] 10 30 50 [2,] 20 40 60 13年2月23日土曜日
  • 41. 行列 2次元の配列 > array2 <- matrix(c(10,20,30,   40,50,60), 2, 3) > array2 matrixという [,1] [,2] [,3] 関数を利用して 作る [1,] 10 30 50 [2,] 20 40 60 13年2月23日土曜日
  • 42. 行列 2次元の配列 > array2 <- matrix(c(10,20,30,   40,50,60), 2, 3) > array2 2行3列の [,1] [,2] [,3] 行列 [1,] 10 30 50 [2,] 20 40 60 13年2月23日土曜日
  • 43. 行列 各要素の指定 > array2[1,1] 1行1列を [1] 10 指定 > array2[1,] [1] 10 30 50 > array2[,1] [1] 10 20 13年2月23日土曜日
  • 44. 行列 各要素の指定 > array2[1,1] [1] 10 > array2[1,] 1行目全体 を指定 [1] 10 30 50 > array2[,1] [1] 10 20 13年2月23日土曜日
  • 45. 行列 各要素の指定 > array2[1,1] [1] 10 > array2[1,] [1] 10 30 50 > array2[,1] 1列目全体 [1] 10 20 を指定 13年2月23日土曜日
  • 46. 解析の流れ 変数 データ 配列 関数 行 行列 処理 自作関数 CSV レポート 13年2月23日土曜日
  • 47. 関数 処理の呼び出し • 関数は複数の処理をまとめたもの • 関数名(引数) という書き方で呼び出す • 様々な計算が手軽に実行できる 13年2月23日土曜日
  • 48. 関数 処理の呼び出し 目的 関数名と書式 使い方 データの結合 C(データ) C( C , B , B ) 合計 sum(データ) sum(10,20,30) 個数を求める length(データ) length(array) 平均 mean(データ) mean(array) 標準偏差 sd(データ) sd(array) ・・・ ・・・ ・・・ 13年2月23日土曜日
  • 49. 関数 合計を求める > array [1] 10 20 30 > sum(array) [1] 60 13年2月23日土曜日
  • 50. 関数 合計を求める > array 先ほどの [1] 10 20 30 配列array > sum(array) [1] 60 13年2月23日土曜日
  • 51. 関数 合計を求める > array [1] 10 20 30 関数名(引数) > sum(array) で処理呼び出し [1] 60 13年2月23日土曜日
  • 52. 関数 合計を求める > array [1] 10 20 30 > sum(array) 処理結果が [1] 60 出力される 13年2月23日土曜日
  • 53. 関数 合計を求める > array2 [,1] [,2] [,3] [1,] 10 30 50 先ほどの行列を 渡した場合 [2,] 20 40 60 > sum(array2) [1] 210 13年2月23日土曜日
  • 54. 関数 合計を求める > array2 [,1] [,2] [,3] [1,] 10 30 50 [2,] 20 40 60 > sum(array2) 合計値が 表示される [1] 210 13年2月23日土曜日
  • 55. 変数 関数 結果を格納 > ret <- sum(array2) > ret 処理結果を [1] 210 変数に格納 13年2月23日土曜日
  • 56. 変数 関数 結果を格納 > ret <- sum(array2) > ret 合計値の [1] 210 確認 13年2月23日土曜日
  • 57. 解析の流れ 変数 データ 配列 関数 行 行列 処理 自作関数 CSV レポート 13年2月23日土曜日
  • 58. CSV 関数 CSV読み込み • 変数に毎回データを手入力するのは面倒 • CSV形式(カンマ区切り)ファイルを読み 込む関数がある • CSV形式であればエクセル等と相互にデ ータをやりとり出来る 13年2月23日土曜日
  • 59. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks height salary 1 173 17000 2 178 14000 3 180 9000 13年2月23日土曜日
  • 60. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks read.csv関数に height salary hawks.csvという CSVファイルを 1 173 17000 渡して 2 178 14000 変数に代入 3 180 9000 13年2月23日土曜日
  • 61. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks height salary CSVファイルの 1 173 17000 変数への 2 178 14000 読み込みが 3 180 9000 確認できる 13年2月23日土曜日
  • 62. 解析の流れ 変数 データ 配列 関数 行 行列 処理 自作関数 CSV レポート 13年2月23日土曜日
  • 63. 自作関数 自分で関数を作る • 関数は自分で定義することも可能 • 繰り返し使う処理は自作関数にする 13年2月23日土曜日
  • 64. 自作関数 自分で関数を作る > varp <- function(x) { retsult <- var(x) * (length(x) - 1) / length(x) retsult } > varp(array) [1] 66.66667 13年2月23日土曜日
  • 65. 自作関数 自分で関数を作る > varp <- function(x) { 関数の定義 retsult <- var(x) * (length(x) - 1) / length(x) retsult 関数名 <- function (引数) { } 処理 > varp(array) } [1] 66.66667 13年2月23日土曜日
  • 66. 自作関数 自分で関数を作る > varp <- function(x) { 関数名 retsult <- var(x) * (length(x) - 1) / length(x) retsult 関数名 <- function (引数) { } 処理 > varp(array) } [1] 66.66667 13年2月23日土曜日
  • 67. 自作関数 自分で関数を作る 引数 > varp <- function(x) { (変数を渡す) retsult <- var(x) * (length(x) - 1) / length(x) retsult 関数名 <- function (引数) { } 処理 > varp(array) } [1] 66.66667 13年2月23日土曜日
  • 68. 自作関数 自分で関数を作る 処理を > varp <- function(x) { まとめる retsult <- var(x) * (length(x) - 1) / length(x) retsult } 関数名 <- function (引数) { > varp(array) 処理 [1] 66.66667 } 13年2月23日土曜日
  • 69. 自作関数 自分で関数を作る > varp <- function(x) { retsult <- var(x) * (length(x) - 1) / length(x) retsult } > varp(array) 関数にまとめられた 処理が実行される [1] 66.66667 (標本分散の算出) 13年2月23日土曜日
  • 70. 解析の流れ 変数 データ 配列 関数 行 行列 処理 自作関数 CSV パッケージ レポート 作図 13年2月23日土曜日
  • 71. パッケージ 関数をまとめたもの • 複数の関数をまとめたもの • 様々なパッケージがCRANというシステ ムにて無料公開されている • 自作のパッケージも公開できる 13年2月23日土曜日
  • 72. パッケージ 外部パッケージ 作図 > install.packages( ggplot2 ) > library("ggplot2") CRANから パッケージ ダウンロード& インストール 13年2月23日土曜日
  • 73. パッケージ 外部パッケージ 作図 > install.packages( ggplot2 ) パッケージを > library("ggplot2") ロード 13年2月23日土曜日
  • 74. パッケージ 外部パッケージ 作図 a <- 1:10 b <- a^2 新たに qplot関数が qplot(a,b) 使えるように なった 13年2月23日土曜日
  • 75. パッケージ qplot実行結果 作図 a <- 1:10 b <- a^2 qplot(a,b) 13年2月23日土曜日
  • 76. パッケージ その他作図関数 作図 • 標準の関数でも作図可能 目的 関数名と書式 使い方 ヒストグラム hist(データ) hist(array) 散布図 plot(x, y) plot(a,b) ・・・ ・・・ ・・・ 13年2月23日土曜日
  • 77. 一連の作業が実施可能 データ 処理 レポート 13年2月23日土曜日
  • 78. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年2月23日土曜日
  • 79. CRAN Task Viws • Rには2000以上パッケージがある • 用途別におすすめパッケージを紹介 http://cran.r-project.org/web/views/ 13年2月23日土曜日
  • 80. seekR • R言語用検索エンジン http://seekr.jp/ 13年2月23日土曜日
  • 81. RjpWiki • R言語のWiki http://www.okada.jp.org/RWiki/ 13年2月23日土曜日
  • 82. Rコミュニティ発表資料 • Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage 「勉強会発表内容一覧」のリンクから 13年2月23日土曜日
  • 83. RとSQLの対応付け • SQLが分かる人は一読の価値有り http://d.hatena.ne.jp/a_bicky/20110529/1306667230 13年2月23日土曜日
  • 84. R-Chart • Rでの作図のサンプルが多数ある http://www.r-chart.com/ 13年2月23日土曜日
  • 85. まとめ • Rは無料の統計解析ソフトでパッケー ジが豊富 • データ解析からレポートまで利用可能 • Web上の資料も充実してます 13年2月23日土曜日
  • 89. 連携も可能 プログラミング言語寄り (カスタマイズ可能) .C()関数 実務利用 RExcel プロトタイピング 業務専用 パッケージ 直感的な操作(用途は限定) 13年2月23日土曜日