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