More Related Content
More from Nobuaki Oshiro (12)
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日土曜日
- 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日土曜日
- 26. 処理の記述
3+5 = 8
10-7 = 3
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日土曜日
- 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日土曜日