Mais conteúdo relacionado
Semelhante a 10分で分かるr言語入門ver2.9 14 0920 (20)
Mais de Nobuaki Oshiro (18)
10分で分かるr言語入門ver2.9 14 0920
- 2. 開催情報
ATND
• https://atnd.org/events/56275
セキココ
• http://sekico.co/zaseki/384
!
2
- 5. 自己紹介• 名前:大城信晃
• Twitter:doradora09
• 職業:データマイニングエンジニア
• R:勉強中。
• 業務ではhadoop使ってます
• マイブーム:
• カクテル作り
• カメラ
• 肉(ブロック) 5
- 15. での使われ方
• プロトタイプをRで作って検証
• PythonやC++で実装
GoogleとFacebookではRをどうやって使っているのか?
http://pracmper.blogspot.jp/2010/01/googlefacebookr.html
15
- 17. 他言語との比較
特徴価格大規模データ速度
統計特化無料△
(メモリ依存) △
SAS/
SPSS 統計特化数十万~ ○ ○
エクセル直感的1万~ ×
(約100万行) ×
C++ 高速だが
開発コスト高
無料~
数万実装次第◎
Python スクリプト
言語無料実装次第○
17
- 26. 解析の流れ
データ
処理
レポート
変数
配列
行列
関数
自作関数
パッケージ
データフレーム
CSV 作図
26
- 27. 解析の流れ
データ
処理
レポート
変数
配列
行列
データフレーム
関数
自作関数
パッケージ
CSV 作図
27
- 29. 値を入れる箱
変数
> hako <- 10
> hako
[1] 10
> hako * 2
[1] 20
29
- 30. 値を入れる箱
変数
> hako <- 10
> hako
[1] 10
> hako * 2
[1] 20
変数に値を入れる
左矢印のイメージ
変数に対して
処理(かけ算)
30
- 31. 複数の値をまとめる
配列
> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
31
- 32. 複数の値をまとめる
> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
処理は
配列全体に
適用される
配列
3つの値を
配列に格納
32
- 33. 各要素へのアクセス
配列
> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
33
- 34. 各要素へのアクセス
> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列[番号]で
1個ずつ値を
取り出せる
配列
2個目
3個目
34
- 35. 2次元の配列
行列
> array2 <- matrix(c(10,20,30,
40,50,60), 2, 3)
> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
35
- 36. 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列の
行列
36
- 38. 各要素の指定
行列
> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
38
- 39. 各要素の指定
> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
1行1列を
指定
行列
1行目全体
を指定
1列目全体
を指定
39
- 40. 複数の型を持てる
データフレーム
> 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
40
- 41. 複数の型を持てる
> 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
データフレーム
data.frame関数で
セット
41
- 42. 要素の指定
> 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番目
42
- 49. 関数合計を求める
> array
[1] 10 20 30
> sum(array)
[1] 60
先ほどの配列
関数名(引数)
で処理呼び出し
処理結果が
出力される
49
- 50. 行列も足せる
関数
> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210
50
- 51. 行列も足せる
> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210
合計値が
表示される
関数
先ほどの行列
array2
51
- 53. 関数結果を格納
> ret <- sum(array2)
> ret
[1] 210
処理結果を
変数に格納
変数
合計値の
確認
53
- 54. CSV読み込み
CSV 関数
• 変数に毎回データを手入力するのは面倒
• CSV形式(カンマ区切り)ファイルを読み
込む関数がある
54
- 55. CSV 関数
CSV読み込み
> hawks <- read.csv("hawks.csv")
!
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
55
- 56. CSV 関数
CSV読み込み
> hawks <- read.csv("hawks.csv")
!
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
read.csv関数に
hawks.csvという
CSVファイルを
渡して
変数に代入
56
- 57. CSV 関数CSV読み込み
> hawks <- read.csv("hawks.csv")
!
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
CSVファイルの
変数への
読み込みが
確認できる57
- 60. 自作関数自分で関数を作る
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
60
- 61. 自作関数自分で関数を作る
> varp <- function(x) {
関数の定義
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
処理を記述する
> varp(array)
実行
[1] 66.66667
61
- 63. 解析の流れ
データ
処理
レポート
変数
配列
行列
関数
自作関数
パッケージ
データフレーム
CSV 作図
63
- 65. 作図標準作図関数
• 標準の関数でも色々と作図可能
目的関数名
ヒストグラムhist
散布図plot
箱ヒゲ図boxplot
・・・・・・
参考URL
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html
65
- 66. 作図標準作図関数
> x <- rnorm(50)
> hist(x, breaks=seq(-3, 3,1))
66
- 67. 作図標準作図関数
乱数生成
> x <- rnorm(50)
> hist(x, breaks=seq(-3, 3,1))
ヒストグラム
作図関数
67
- 69. 関数をまとめたもの
パッケージ
• 複数の関数をまとめたもの
• 様々なパッケージがCRANというシステ
ムにて無料公開されている
• 自作のパッケージも公開できる
69
- 72. パッケージ外部パッケージ
作図
> install.packages(“ggplot2”)
> library("ggplot2") CRANから
パッケージ
ダウンロード&
インストール
パッケージを
ロード
72
- 86. Rコミュニティ発表資料
• Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ
http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage
「勉強会発表内容一覧」のリンクから
86
- 88. サンプルデータ
• 統計を学びたい人へ贈る、統計解析に使え
るデータセットまとめ
• http://d.hatena.ne.jp/hoxo_m/
20120214/p1
• データセット一覧
• http://vincentarelbundock.github.io/
Rdatasets/datasets.html
88
- 91. CRAN Task Viws
• Rには5000以上パッケージがある
(2014/09現在)
• 用途別におすすめパッケージを紹介
http://cran.r-project.org/web/views/
91
- 92. CRAN Task Viws
• 日本語訳してるサイト(一部機械翻訳)
http://www.trifields.jp/r-cran-task-views-639
92
- 102. 初心者だけど2回目
• 箕田さんの初心者セッション
• 集計、条件分岐、ループ、作図など
http://www.slideshare.net/
aad34210/tokyo-r21
http://www.slideshare.net/
aad34210/tokyo-r30-beginner 102
- 104. 関数 補足:クリップボード
#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
104
- 105. CSV 関数 補足2:関数調べ方
> ?read.table
> ??read.table
>help(read.table)
! ヘルプを
呼び出すことが
出来る
105
- 106. CSV 関数 補足2:関数調べ方
> ?read.table
> ??read.table
>help(read.table)
後半には
用例もあるので
参考に
!
106
- 107. 紹介:テキスト解析ツール
KH Corder
• 茶筅やRを裏側で利用(Rのソースで出力可)
• GUIで形態素解析、対応分析、ネット
ワーク分析が簡単にできる
http://khc.sourceforge.net/
107