10分で分かるr言語入門ver2.2 13 0223
TRANSCRIPT
10分で分かるR言語入門 ver2.2
大城信晃2013/02/23 TokyoR#29
13年2月23日土曜日
開催情報ATND http://atnd.org/events/36417
セキココhttp://sekico.co/zaseki/96
13年2月23日土曜日
アジェンダ
•自己紹介とお知らせ• Rって何• Rの使い方• Rの資料
13年2月23日土曜日
アジェンダ
•自己紹介とお知らせ• Rって何• Rの使い方• Rの資料
13年2月23日土曜日
自己紹介• 名前:大城信晃• Twitter:doradora09• 職業:Webエンジニア• R:勉強中• マイブーム:• カクテル作り• カメラが気になる
13年2月23日土曜日
自己紹介• 名前:大城信晃• Twitter:doradora09• 職業:Webエンジニア• R:勉強中• マイブーム:• カクテル作り -> 冬場はお休み• カメラが気になる
13年2月23日土曜日
自己紹介• 名前:大城信晃• Twitter:doradora09• 職業:Webエンジニア• R:勉強中• マイブーム:• カクテル作り -> 冬場はお休み• カメラが気になる -> 買いました!
13年2月23日土曜日
カメラ買いました!
•Panasonic GF3(手前)• PENTAX-Kr (奥)
13年2月23日土曜日
風景、夜景
13年2月23日土曜日
料理、お酒
13年2月23日土曜日
プリキュアにハマるおっさん達
13年2月23日土曜日
山
13年2月23日土曜日
自己紹介• 名前:大城信晃• Twitter:doradora09• 職業:Webエンジニア• R:勉強中• マイブーム:• カクテル作り -> 冬場はお休み• カメラが気になる -> 買いました!• 軽登山 <- New!!
13年2月23日土曜日
では本題に
•自己紹介とお知らせ•Rって何• Rの使い方• Rの資料
13年2月23日土曜日
R言語(アールげんご)は、オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境である。
Wikipediaより引用
13年2月23日土曜日
オープンソース 個人が開発に参加できるフリーソフトウェア タダで使える統計解析向け 関連パッケージが豊富
プログラミング言語 ロジックが記述可能開発実行環境 Rコンソール
13年2月23日土曜日
こんな方におすすめ
•色々な統計手法を試してみたい方•エクセルでは物足りない方
13年2月23日土曜日
での使われ方
•プロトタイプをRで作って検証• PythonやC++で実装
GoogleとFacebookではRをどうやって使っているのか? http://pracmper.blogspot.jp/2010/01/googlefacebookr.html
13年2月23日土曜日
用途で分類
プロトタイピング実務利用
プログラミング言語寄り
直感的な操作(GUI)
業務専用パッケージ
13年2月23日土曜日
用途で分類
プロトタイピング実務利用
プログラミング言語寄り
直感的な操作(GUI)
業務専用パッケージ
モデル検証/実装
統計に特化
13年2月23日土曜日
特徴 価格 大規模データ 速度パッケージが豊富 無料 △
(メモリ依存)△
エクセル 直感的 1万~ ×(約100万行)
×
SAS 大規模データ処理 数十万~ ○ ○
C++ 高速開発コスト高
無料~数万
実装次第 ◎
他言語との比較
13年2月23日土曜日
アジェンダ
•自己紹介とお知らせ• Rって何•Rの使い方• Rの資料
13年2月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/
13年2月23日土曜日
Rコンソール起動
13年2月23日土曜日
Rコンソール起動
ココに処理を記述していく
13年2月23日土曜日
処理の記述
3+5 = 810-7 = 3
13年2月23日土曜日
処理
解析の流れで説明データ
レポート13年2月23日土曜日
処理
解析の流れデータ
レポート
変数配列行列
13年2月23日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
変数
13年2月23日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
変数
変数に値を入れる左矢印のイメージ
13年2月23日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
変数
変数名を打つと中の値が出る
13年2月23日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
> hako * 2
[1] 20
変数
変数に対して処理(かけ算)
13年2月23日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
配列
13年2月23日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
3つの値を配列に格納
配列
13年2月23日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
値の確認
配列
13年2月23日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
処理は配列全体に適用される
配列
13年2月23日土曜日
複数の値をまとめる> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列[番号]で1個ずつ値を取り出せる
配列
13年2月23日土曜日
複数の値をまとめる> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列
2個目
13年2月23日土曜日
複数の値をまとめる> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列
3個目
13年2月23日土曜日
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日土曜日
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という関数を利用して
作る
行列
13年2月23日土曜日
2次元の配列> array2 <- matrix(c(10,20,30,
40,50,60), 2, 3)
> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
2行3列の行列
行列
13年2月23日土曜日
各要素の指定> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
1行1列を指定
行列
13年2月23日土曜日
各要素の指定> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
1行目全体を指定
行列
13年2月23日土曜日
各要素の指定> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20 1列目全体を指定
行列
13年2月23日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数 行列自作関数
CSV
13年2月23日土曜日
処理の呼び出し関数
•関数は複数の処理をまとめたもの•関数名(引数) という書き方で呼び出す•様々な計算が手軽に実行できる
13年2月23日土曜日
処理の呼び出し関数
目的 関数名と書式 使い方データの結合 C(データ) C(“C”,”B”,”B”)合計 sum(データ) sum(10,20,30)
個数を求める length(データ) length(array)平均 mean(データ) mean(array)標準偏差 sd(データ) sd(array)・・・ ・・・ ・・・
13年2月23日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60
13年2月23日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60
先ほどの配列array
13年2月23日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60
関数名(引数)で処理呼び出し
13年2月23日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60 処理結果が出力される
13年2月23日土曜日
合計を求める関数> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210
先ほどの行列を渡した場合
13年2月23日土曜日
合計を求める> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210
合計値が表示される
関数
13年2月23日土曜日
結果を格納関数
> ret <- sum(array2)
> ret
[1] 210 処理結果を変数に格納
変数
13年2月23日土曜日
結果を格納関数
> ret <- sum(array2)
> ret
[1] 210 合計値の確認
変数
13年2月23日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数 行列自作関数
CSV
13年2月23日土曜日
CSV読み込み
•変数に毎回データを手入力するのは面倒• CSV形式(カンマ区切り)ファイルを読み込む関数がある
• CSV形式であればエクセル等と相互にデータをやりとり出来る
関数CSV
13年2月23日土曜日
関数CSV> hawks <- read.csv("hawks.csv")
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
CSV読み込み
13年2月23日土曜日
関数CSV> hawks <- read.csv("hawks.csv")
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
read.csv関数にhawks.csvというCSVファイルを
渡して変数に代入
CSV読み込み
13年2月23日土曜日
CSV読み込み関数CSV> hawks <- read.csv("hawks.csv")
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
CSVファイルの変数への読み込みが確認できる
13年2月23日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数 行列自作関数
CSV
13年2月23日土曜日
自分で関数を作る
•関数は自分で定義することも可能•繰り返し使う処理は自作関数にする
自作関数
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数名 <- function (引数) { 処理
}
関数の定義
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数名 <- function (引数) { 処理
}
関数名
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数名 <- function (引数) { 処理
}
引数(変数を渡す)
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数名 <- function (引数) { 処理
}
処理をまとめる
13年2月23日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数にまとめられた処理が実行される(標本分散の算出)
13年2月23日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数 行列
パッケージ
自作関数
作図
CSV
13年2月23日土曜日
関数をまとめたもの
•複数の関数をまとめたもの•様々なパッケージがCRANというシステムにて無料公開されている
•自作のパッケージも公開できる
パッケージ
13年2月23日土曜日
> install.packages(“ggplot2”)
> library("ggplot2") CRANからパッケージダウンロード&インストール
外部パッケージパッケージ作図
13年2月23日土曜日
> install.packages(“ggplot2”)
> library("ggplot2") パッケージをロード
外部パッケージパッケージ作図
13年2月23日土曜日
a <- 1:10
b <- a^2
qplot(a,b)
新たにqplot関数が使えるようになった
外部パッケージパッケージ作図
13年2月23日土曜日
a <- 1:10
b <- a^2
qplot(a,b)
qplot実行結果パッケージ作図
13年2月23日土曜日
その他作図関数パッケージ作図
•標準の関数でも作図可能目的 関数名と書式 使い方
ヒストグラム hist(データ) hist(array)
散布図 plot(x, y) plot(a,b)
・・・ ・・・ ・・・
13年2月23日土曜日
処理
一連の作業が実施可能データ
レポート13年2月23日土曜日
アジェンダ
•自己紹介とお知らせ• Rって何• Rの使い方•Rの資料
13年2月23日土曜日
CRAN Task Viws•Rには2000以上パッケージがある•用途別におすすめパッケージを紹介http://cran.r-project.org/web/views/
13年2月23日土曜日
seekR
http://seekr.jp/
• R言語用検索エンジン
13年2月23日土曜日
RjpWiki• R言語のWikihttp://www.okada.jp.org/RWiki/
13年2月23日土曜日
Rコミュニティ発表資料http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage「勉強会発表内容一覧」のリンクから
• Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ
13年2月23日土曜日
RとSQLの対応付け•SQLが分かる人は一読の価値有りhttp://d.hatena.ne.jp/a_bicky/20110529/1306667230
13年2月23日土曜日
R-Chart• Rでの作図のサンプルが多数あるhttp://www.r-chart.com/
13年2月23日土曜日
まとめ
•Rは無料の統計解析ソフトでパッケージが豊富
•データ解析からレポートまで利用可能•Web上の資料も充実してます
13年2月23日土曜日
ご清聴ありがとうございました
13年2月23日土曜日
質疑応答
13年2月23日土曜日
予備資料
13年2月23日土曜日
連携も可能
プロトタイピング実務利用
プログラミング言語寄り(カスタマイズ可能)
直感的な操作(用途は限定)
業務専用パッケージ
.C()関数
RExcel
13年2月23日土曜日
イケメンツールRStudio
13年2月23日土曜日