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

10分で分かるr言語入門ver2.5

35,118 views

Published on

第35回R勉強会@東京(#TokyoR)
ATND: http://atnd.org/events/45114

  • Be the first to comment

10分で分かるr言語入門ver2.5

  1. 1. 10分で分かる R言語入門 ver2.5 大城信晃 2013/11/09 TokyoR#35 13年11月9日土曜日
  2. 2. 開催情報 ATND http://atnd.org/events/45114 セキココ http://sekico.co/zaseki/218 13年11月9日土曜日
  3. 3. お知らせ Rユーザー会 (11/29 - 30 @統数研) http://prcs.ism.ac.jp/useRjp/ Japan.R (12/7 @ヤフー) http://atnd.org/events/44682 13年11月9日土曜日
  4. 4. 本セッションの役割 • R初心者のために基礎を説明 • 本勉強会の以降の他セッションの前提 知識を得てもらう 13年11月9日土曜日
  5. 5. アジェンダ • 自己紹介 • Rって何 • Rの使い方 • Rの資料 13年11月9日土曜日
  6. 6. 自己紹介 • 名前:大城信晃 • Twitter:doradora09 • 職業:データマイニングエンジニア • R:勉強中。いつか業務で使いたい • マイブーム: • カクテル作り • カメラ 13年11月9日土曜日
  7. 7. これまで/現在の仕事 • ショッピング関連 • 商品/製品DB 保守開発 • データ分析関連 • 行動ターゲティング • データを使って顧客像を探る 13年11月9日土曜日
  8. 8. TokyoRでは • 第1回から主に運営側で参加 • 初心者セッション • 最近は懇親会でピザ注文したりお酒作 ったりしてます 13年11月9日土曜日
  9. 9. お菓子もどうぞ! 13年11月9日土曜日
  10. 10. 本日のお酒 13年11月9日土曜日
  11. 11. 本日のお酒 ジョニーウォーカー 13年11月9日土曜日
  12. 12. 本日のお酒 • ジョニー・ウォーカー (Johnnie Walker) は スコッチ・ウイスキーの世界的に有名なブラ ンドで、スコットランド・キルマーノック (Kilmarnock)の発祥である。 • ジョニー・ウォーカーはスコッチの銘柄とし ては世界で一番広まっている。200以上の 国々で年間1億2000万本売れている。 13年11月9日土曜日
  13. 13. 種類 13年11月9日土曜日
  14. 14. 本日のお酒 13年11月9日土曜日
  15. 15. ジョニ青! 13年11月9日土曜日
  16. 16. 懇親会も是非 ご参加下さい! 13年11月9日土曜日
  17. 17. では本題に • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年11月9日土曜日
  18. 18. R言語(アールげんご)は、オープンソ ースでフリーソフトウェアの統計解 析向けプログラミング言語、及びそ の開発実行環境である。 Wikipediaより引用 13年11月9日土曜日
  19. 19. での使われ方 • プロトタイプをRで作って検証 • PythonやC++で実装 GoogleとFacebookではRをどうやって使っているのか? http://pracmper.blogspot.jp/2010/01/googlefacebookr.html 13年11月9日土曜日
  20. 20. 用途で分類 コマンドライン形式(CUI) 実装 実務利用 プロトタイピング 業務専用 ソフト 画面上で操作(GUI) 13年11月9日土曜日
  21. 21. 他言語との比較 特徴 価格 統計特化 無料 SAS/ SPSS 統計特化 数十万∼ エクセル 直感的 1万∼ 高速だが 無料∼ C++ 開発コスト高 数万 スクリプト Python 無料 言語 13年11月9日土曜日 大規模データ △ (メモリ依存) ○ 速度 △ ○ (約100万行) 実装次第 ◎ 実装次第 ○
  22. 22. こんな方におすすめ • 色々な統計手法を試してみたい方 • エクセルでは物足りない方 • まずは無料で始めてみたい方 13年11月9日土曜日
  23. 23. あると望ましいスキル • プログラミングの基礎 • 統計学の知識 • (英語力) 13年11月9日土曜日
  24. 24. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年11月9日土曜日
  25. 25. インストール Windows Mac http://cran.md.tsukuba.ac.jp/ Linux 13年11月9日土曜日 http://cran.md.tsukuba.ac.jp/ bin/windows/base/ http://cran.md.tsukuba.ac.jp/
  26. 26. Rコンソール起動 13年11月9日土曜日
  27. 27. Rコンソール起動 ココに処理を 記述していく 13年11月9日土曜日
  28. 28. 処理の記述 3+5 = 8 10-7 = 3 13年11月9日土曜日
  29. 29. 解析の流れ データ 処理 レポート 13年11月9日土曜日
  30. 30. 解析の流れ 変数 配列 行列 データ 関数 処理 データフレーム CSV 13年11月9日土曜日 自作関数 パッケージ レポート 作図
  31. 31. 解析の流れ 変数 配列 行列 データ 関数 処理 データフレーム CSV 13年11月9日土曜日 自作関数 パッケージ レポート 作図
  32. 32. ここでは • Rを使ったデータの表現/操作方法につ いて説明します 13年11月9日土曜日
  33. 33. 変数 値を入れる箱 > hako <- 10 > hako [1] 10 > hako * 2 [1] 20 13年11月9日土曜日
  34. 34. 変数 値を入れる箱 > hako <- 10 > hako 変数に値を入れる 左矢印のイメージ [1] 10 > hako * 2 [1] 20 13年11月9日土曜日 変数に対して 処理(かけ算)
  35. 35. 配列 複数の値をまとめる > array <- c(10,20,30) > array [1] 10 20 30 > array * 2 [1] 20 40 60 13年11月9日土曜日
  36. 36. 配列 複数の値をまとめる > array <- c(10,20,30) > array [1] 10 20 30 > array * 2 [1] 20 40 60 13年11月9日土曜日 3つの値を 配列に格納 処理は 配列全体に 適用される
  37. 37. 配列 各要素へのアクセス > array[1] [1] 10 > array[2] [1] 20 > array[3] [1] 30 13年11月9日土曜日
  38. 38. 配列 各要素へのアクセス > array[1] [1] 10 配列[番号]で 1個ずつ値を 取り出せる > array[2] 2個目 [1] 20 > array[3] [1] 30 13年11月9日土曜日 3個目
  39. 39. 行列 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年11月9日土曜日
  40. 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年11月9日土曜日 matrixという 関数を利用して 作る 2行3列の 行列
  41. 41. 行列覚え方 http://wakuteka.info/R/110729 より転載 13年11月9日土曜日
  42. 42. 行列 各要素の指定 > array2[1,1] [1] 10 > array2[1,] [1] 10 30 50 > array2[,1] [1] 10 20 13年11月9日土曜日
  43. 43. 行列 各要素の指定 > array2[1,1] [1] 10 > array2[1,] [1] 10 30 50 > array2[,1] [1] 10 20 13年11月9日土曜日 1行1列を 指定 1行目全体 を指定 1列目全体 を指定
  44. 44. 複数の型を持てる データフレーム > sex <- c("F","F","M","M","M") #性別 > height <- c(158,162,177,173,166) #身長 > weight <- c(51,55,72,57,64) #体重 >(x <- data.frame(SEX=sex, HEIGHT=height, WEIGHT=weight) ) SEX HEIGHT WEIGHT 1 F 158 51 2 F 162 55 3 M 177 72 4 M 173 57 5 M 166 64 13年11月9日土曜日
  45. 45. 複数の型を持てる データフレーム > sex <- c("F","F","M","M","M") #性別 > height <- c(158,162,177,173,166) #身長 > weight <- c(51,55,72,57,64) #体重 >(x <- data.frame(SEX=sex, HEIGHT=height, WEIGHT=weight) ) SEX HEIGHT WEIGHT 1 F 158 51 2 F 162 55 3 M 177 72 4 M 173 57 5 M 166 64 13年11月9日土曜日 data.frame関数で セット 性別(bool型) 身長、体重(数値型)
  46. 46. データフレーム > x$HEIGHT [1] 158 162 177 173 166 > x$HEIGHT[1] [1] 158 > x$HEIGHT[1:3] [1] 158 162 177 13年11月9日土曜日 要素の指定 $で 身長(HEIGHT) を全指定 身長1つめだけ 身長1-3番目
  47. 47. ここまで • 変数:1種類の型の値を1つ入れる箱 (スカラー) • 配列:1種類の型の値を複数入れる箱 (ベクトル) • 行列:1種類の型の複数ベクトルをまと めて表現 • データフレーム:複数の型のベクトルを まとめて表現 13年11月9日土曜日
  48. 48. 解析の流れ 変数 配列 行列 データ 関数 処理 データフレーム CSV 13年11月9日土曜日 自作関数 パッケージ レポート 作図
  49. 49. ここでは • 関数の利用/作成方法 • CSVによるデータ読み込み 13年11月9日土曜日
  50. 50. 関数 処理の呼び出し • 関数は複数の処理をまとめたもの • 様々な計算が手軽に実行できる 13年11月9日土曜日
  51. 51. 関数 処理の呼び出し 目的 データの結合 C(データ) 合計 sum(データ) 個数を求める length(データ) 平均 mean(データ) 標準偏差 sd(データ) ・・・ 13年11月9日土曜日 関数名と書式 ・・・
  52. 52. 関数 合計を求める > array [1] 10 20 30 > sum(array) [1] 60 13年11月9日土曜日
  53. 53. 関数 合計を求める > array 先ほどの配列 [1] 10 20 30 > sum(array) 関数名(引数) で処理呼び出し [1] 60 処理結果が 出力される 13年11月9日土曜日
  54. 54. 関数 行列も足せる > array2 [,1] [,2] [,3] [1,] 10 30 50 [2,] 20 40 60 > sum(array2) [1] 210 13年11月9日土曜日
  55. 55. 関数 行列も足せる > array2 [,1] [,2] [,3] [1,] 10 30 50 先ほどの行列 array2 [2,] 20 40 60 > sum(array2) [1] 210 13年11月9日土曜日 合計値が 表示される
  56. 56. 変数 関数 結果を格納 > ret <- sum(array2) > ret [1] 210 13年11月9日土曜日
  57. 57. 変数 関数 結果を格納 > ret <- sum(array2) > ret [1] 210 13年11月9日土曜日 合計値の 確認 処理結果を 変数に格納
  58. 58. CSV 関数 CSV読み込み • 変数に毎回データを手入力するのは面倒 • CSV形式(カンマ区切り)ファイルを読み 込む関数がある 13年11月9日土曜日
  59. 59. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks height salary 1 173 17000 2 178 14000 3 180 9000 13年11月9日土曜日
  60. 60. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks height salary 1 173 17000 2 178 14000 3 180 9000 13年11月9日土曜日 read.csv関数に hawks.csvという CSVファイルを 渡して 変数に代入
  61. 61. CSV 関数 CSV読み込み > hawks <- read.csv("hawks.csv") > hawks height salary 1 173 17000 2 178 14000 3 180 9000 13年11月9日土曜日 CSVファイルの 変数への 読み込みが 確認できる
  62. 62. 自作関数 自分で関数を作る • 関数は自分で定義することも可能 • 繰り返し使う処理は自作関数にする 13年11月9日土曜日
  63. 63. 関数の書き方 関数名 <- function (引数) { 処理 } 13年11月9日土曜日
  64. 64. 自作関数 自分で関数を作る > varp <- function(x) { retsult <- var(x) * (length(x) - 1) / length(x) retsult } > varp(array) [1] 66.66667 13年11月9日土曜日
  65. 65. 自作関数 自分で関数を作る 関数の定義 > varp <- function(x) { retsult <- var(x) * (length(x) - 1) / length(x) retsult } > varp(array) [1] 66.66667 13年11月9日土曜日 処理を記述する 実行
  66. 66. ここまで • 組み込み関数:基本的な演算が可能 • CSV:read.csv関数でCSV形式のデ ータを読み込める • 自作関数:自身で関数を定義できる 13年11月9日土曜日
  67. 67. 解析の流れ 変数 配列 行列 データ 関数 処理 データフレーム CSV 13年11月9日土曜日 自作関数 パッケージ レポート 作図
  68. 68. ここでは • 作図関数 • 外部パッケージの利用方法 13年11月9日土曜日
  69. 69. 標準作図関数 作図 • 標準の関数でも色々と作図可能 目的 関数名 ヒストグラム hist 散布図 plot 箱ヒゲ図 boxplot ・・・ ・・・ 参考URL http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html 13年11月9日土曜日
  70. 70. 作図 標準作図関数 > x <- rnorm(50) > hist(x, breaks=seq(-3, 3,1)) 13年11月9日土曜日
  71. 71. 標準作図関数 作図 乱数生成 > x <- rnorm(50) > hist(x, breaks=seq(-3, 3,1)) ヒストグラム 作図関数 13年11月9日土曜日
  72. 72. パッケージ 関数をまとめたもの • 複数の関数をまとめたもの • 様々なパッケージがCRANというシステ ムにて無料公開されている • 自作のパッケージも公開できる 13年11月9日土曜日
  73. 73. 例 • 作図パッケージggplot2を使えるよう にする 13年11月9日土曜日
  74. 74. パッケージ 外部パッケージ 作図 > install.packages( ggplot2 ) > library("ggplot2") 13年11月9日土曜日
  75. 75. パッケージ 外部パッケージ 作図 > install.packages( ggplot2 ) > library("ggplot2") パッケージを ロード 13年11月9日土曜日 CRANから パッケージ ダウンロード& インストール
  76. 76. パッケージ 作図 a <- 1:10 b <- a^2 qplot(a,b) 13年11月9日土曜日 qplotが利用可能
  77. 77. パッケージ qplotが利用可能 作図 a <- 1:10 b <- a^2 qplot(a,b) ggplot2 パッケージ の関数 13年11月9日土曜日
  78. 78. パッケージ 参考資料 作図 http://www.slideshare.net/dichika/ggplot2 13年11月9日土曜日
  79. 79. パッケージ 紹介:分析用もある 処理 目的 主成分分析 対応分析 クラスター分析 線形回帰分析 生存分析 ニューラルネット ・・・ 13年11月9日土曜日 パッケージ名 stats(組み込み済) MASS stats stats survival nnet ・・・
  80. 80. 詳細はこちらの書籍で • 過去にTokyoRでもテキストとして利用 http://amazon.jp/dp/4627096011/ 13年11月9日土曜日
  81. 81. ここまで • 作図関数:可視化が可能 • パッケージ:CRANからダウンロード して利用する。作図用や分析用など 色々ある 13年11月9日土曜日
  82. 82. Rで一連の分析が可能 データ 処理 レポート 13年11月9日土曜日
  83. 83. アジェンダ • 自己紹介とお知らせ • Rって何 • Rの使い方 • Rの資料 13年11月9日土曜日
  84. 84. • 日本語の資料 13年11月9日土曜日
  85. 85. seekR • R言語用検索エンジン http://seekr.jp/ 13年11月9日土曜日
  86. 86. ちなみに • 中の人がTokyoRで発表して下さいました! http://www.slideshare.net/hiratake55/ seekrjp-22281554 13年11月9日土曜日
  87. 87. RjpWiki • R言語のWiki http://www.okada.jp.org/RWiki/ 13年11月9日土曜日
  88. 88. Rコミュニティ発表資料 • Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage 「勉強会発表内容一覧」のリンクから 13年11月9日土曜日
  89. 89. RとSQLの対応付け • SQLが分かる人は一読の価値有り http://d.hatena.ne.jp/a_bicky/20110529/1306667230 13年11月9日土曜日
  90. 90. • 以下海外のサイト(英語) 13年11月9日土曜日
  91. 91. CRAN Task Viws • Rには2000以上パッケージがある • 用途別におすすめパッケージを紹介 http://cran.r-project.org/web/views/ 13年11月9日土曜日
  92. 92. R-Chart • Rでの作図のサンプルが多数ある http://www.r-chart.com/ 13年11月9日土曜日
  93. 93. まとめ • Rは無料の統計解析ソフト • データ解析からレポートまで利用可能 • Web上の資料も充実 13年11月9日土曜日
  94. 94. まとめ • Rは無料の統計解析ソフト • データ解析からレポートまで利用可能 • Web上の資料も充実 是非使ってみましょう! 13年11月9日土曜日
  95. 95. ご清聴ありがとうございました 13年11月9日土曜日
  96. 96. 質疑応答 13年11月9日土曜日
  97. 97. 予備資料 13年11月9日土曜日
  98. 98. 連携も可能 プログラミング言語寄り (カスタマイズ可能) .C()関数 RExcel 実務利用 プロトタイピング 業務専用 パッケージ 直感的な操作(用途は限定) 13年11月9日土曜日
  99. 99. イケメンツールRStudio 13年11月9日土曜日
  100. 100. RStudio資料 http://www.slideshare.net/wdkz/ rstudio-13866958 13年11月9日土曜日
  101. 101. 初心者だけど2回目 • 箕田さんの初心者セッション • 集計、条件分岐、ループ、作図など http://www.slideshare.net/ aad34210/tokyo-r30-beginner 13年11月9日土曜日 http://www.slideshare.net/ aad34210/tokyo-r21
  102. 102. Tips 13年11月9日土曜日
  103. 103. CSV 関数 補足:クリップボード #windowsの場合 >hawks <- read.table("clipboard", header=TRUE,sep=’,’); #macの場合 >hawks <- read.table(pipe("pbpaste"), header=TRUE,sep=’,’) > hawks height salary クリップボードからも 1 173 17000 読み込み可能 2 178 14000 3 180 9000 13年11月9日土曜日
  104. 104. CSV 関数 補足2:関数調べ方 > ?read.table > ??read.table >help(read.table) ヘルプを 呼び出すことが 出来る 13年11月9日土曜日
  105. 105. CSV 関数 補足2:関数調べ方 > ?read.table > ??read.table >help(read.table) 後半には 用例もあるので 参考に 13年11月9日土曜日

×