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.7

6,036 views

Published on

  • Be the first to comment

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

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

×