Upload
nobuaki-oshiro
View
23.640
Download
8
Embed Size (px)
DESCRIPTION
第35回R勉強会@東京(#TokyoR) ATND: http://atnd.org/events/45114
Citation preview
10分で分かるR言語入門 ver2.5
大城信晃2013/11/09 TokyoR#35
13年11月9日土曜日
開催情報ATND http://atnd.org/events/45114
セキココhttp://sekico.co/zaseki/218
13年11月9日土曜日
お知らせ
Rユーザー会 (11/29 - 30 @統数研)http://prcs.ism.ac.jp/useRjp/
Japan.R (12/7 @ヤフー) http://atnd.org/events/44682
13年11月9日土曜日
本セッションの役割
• R初心者のために基礎を説明
•本勉強会の以降の他セッションの前提知識を得てもらう
13年11月9日土曜日
アジェンダ
•自己紹介• Rって何
• Rの使い方
• Rの資料
13年11月9日土曜日
自己紹介• 名前:大城信晃
• Twitter:doradora09
• 職業:データマイニングエンジニア
• R:勉強中。いつか業務で使いたい
• マイブーム:
• カクテル作り
• カメラ
13年11月9日土曜日
これまで/現在の仕事•ショッピング関連
•商品/製品DB 保守開発
•データ分析関連
•行動ターゲティング
•データを使って顧客像を探る
13年11月9日土曜日
TokyoRでは
•第1回から主に運営側で参加
•初心者セッション
•最近は懇親会でピザ注文したりお酒作ったりしてます
13年11月9日土曜日
お菓子もどうぞ!
13年11月9日土曜日
本日のお酒
13年11月9日土曜日
本日のお酒
ジョニーウォーカー
13年11月9日土曜日
本日のお酒
• ジョニー・ウォーカー (Johnnie Walker) はスコッチ・ウイスキーの世界的に有名なブランドで、スコットランド・キルマーノック (Kilmarnock)の発祥である。
• ジョニー・ウォーカーはスコッチの銘柄としては世界で一番広まっている。200以上の国々で年間1億2000万本売れている。
13年11月9日土曜日
種類
13年11月9日土曜日
本日のお酒
13年11月9日土曜日
ジョニ青!
13年11月9日土曜日
懇親会も是非ご参加下さい!
13年11月9日土曜日
では本題に
•自己紹介とお知らせ
•Rって何• Rの使い方
• Rの資料
13年11月9日土曜日
R言語(アールげんご)は、オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境である。
Wikipediaより引用
13年11月9日土曜日
での使われ方
•プロトタイプをRで作って検証
• PythonやC++で実装
GoogleとFacebookではRをどうやって使っているのか? http://pracmper.blogspot.jp/2010/01/googlefacebookr.html
13年11月9日土曜日
用途で分類
プロトタイピング実務利用
コマンドライン形式(CUI)
画面上で操作(GUI)
業務専用ソフト
実装
13年11月9日土曜日
特徴 価格 大規模データ 速度統計特化 無料 △
(メモリ依存)△
SAS/SPSS 統計特化 数十万~ ○ ○
エクセル 直感的 1万~ ×(約100万行)
×
C++ 高速だが開発コスト高
無料~数万
実装次第 ◎
Python スクリプト言語
無料 実装次第 ○
他言語との比較
13年11月9日土曜日
こんな方におすすめ
•色々な統計手法を試してみたい方
•エクセルでは物足りない方
•まずは無料で始めてみたい方
13年11月9日土曜日
あると望ましいスキル
•プログラミングの基礎
•統計学の知識
• (英語力)
13年11月9日土曜日
アジェンダ
•自己紹介とお知らせ
• Rって何
•Rの使い方• Rの資料
13年11月9日土曜日
インストール
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年11月9日土曜日
Rコンソール起動
13年11月9日土曜日
Rコンソール起動
ココに処理を記述していく
13年11月9日土曜日
処理の記述
3+5 = 810-7 = 3
13年11月9日土曜日
処理
解析の流れデータ
レポート13年11月9日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数
パッケージ
自作関数
作図CSVデータフレーム
13年11月9日土曜日
処理
解析の流れデータ
レポート
変数配列行列
データフレーム
関数
パッケージ
自作関数
作図CSV13年11月9日土曜日
ここでは
• Rを使ったデータの表現/操作方法について説明します
13年11月9日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
> hako * 2
[1] 20
変数
13年11月9日土曜日
値を入れる箱> hako <- 10
> hako
[1] 10
> hako * 2
[1] 20
変数
変数に対して処理(かけ算)
変数に値を入れる左矢印のイメージ
13年11月9日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
配列
13年11月9日土曜日
複数の値をまとめる> array <- c(10,20,30)
> array
[1] 10 20 30
> array * 2
[1] 20 40 60
処理は配列全体に適用される
配列
3つの値を配列に格納
13年11月9日土曜日
各要素へのアクセス> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列
13年11月9日土曜日
各要素へのアクセス> array[1]
[1] 10
> array[2]
[1] 20
> array[3]
[1] 30
配列[番号]で1個ずつ値を取り出せる
配列
2個目
3個目
13年11月9日土曜日
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年11月9日土曜日
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列の行列
13年11月9日土曜日
行列覚え方
http://wakuteka.info/R/110729 より転載
13年11月9日土曜日
各要素の指定> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
行列
13年11月9日土曜日
各要素の指定> array2[1,1]
[1] 10
> array2[1,]
[1] 10 30 50
> array2[,1]
[1] 10 20
1行1列を指定
行列
1行目全体を指定
1列目全体を指定
13年11月9日土曜日
複数の型を持てる> 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
データフレーム
13年11月9日土曜日
複数の型を持てる> 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関数でセット
13年11月9日土曜日
要素の指定> 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番目
13年11月9日土曜日
ここまで•変数:1種類の型の値を1つ入れる箱(スカラー)
•配列:1種類の型の値を複数入れる箱(ベクトル)
•行列:1種類の型の複数ベクトルをまとめて表現
•データフレーム:複数の型のベクトルをまとめて表現
13年11月9日土曜日
CSV
処理
解析の流れデータ
レポート
変数配列行列
関数
自作関数データフレーム
パッケージ
作図13年11月9日土曜日
ここでは
•関数の利用/作成方法
• CSVによるデータ読み込み
13年11月9日土曜日
処理の呼び出し関数
•関数は複数の処理をまとめたもの
•様々な計算が手軽に実行できる
13年11月9日土曜日
処理の呼び出し関数
目的 関数名と書式データの結合 C(データ)
合計 sum(データ)個数を求める length(データ)
平均 mean(データ)標準偏差 sd(データ)・・・ ・・・
13年11月9日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60
13年11月9日土曜日
合計を求める関数
> array
[1] 10 20 30
> sum(array)
[1] 60
処理結果が出力される
関数名(引数)で処理呼び出し
先ほどの配列
13年11月9日土曜日
行列も足せる> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210
関数
13年11月9日土曜日
行列も足せる> array2
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
> sum(array2)
[1] 210 合計値が表示される
関数
先ほどの行列array2
13年11月9日土曜日
結果を格納関数
> ret <- sum(array2)
> ret
[1] 210
変数
13年11月9日土曜日
結果を格納関数
> ret <- sum(array2)
> ret
[1] 210
処理結果を変数に格納
変数
合計値の確認
13年11月9日土曜日
CSV読み込み
•変数に毎回データを手入力するのは面倒
• CSV形式(カンマ区切り)ファイルを読み込む関数がある
関数CSV
13年11月9日土曜日
関数CSV> hawks <- read.csv("hawks.csv")
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
CSV読み込み
13年11月9日土曜日
関数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年11月9日土曜日
CSV読み込み関数CSV> hawks <- read.csv("hawks.csv")
> hawks
height salary
1 173 17000
2 178 14000
3 180 9000
CSVファイルの変数への読み込みが確認できる
13年11月9日土曜日
自分で関数を作る
•関数は自分で定義することも可能
•繰り返し使う処理は自作関数にする
自作関数
13年11月9日土曜日
関数の書き方
関数名 <- function (引数) { 処理
}
13年11月9日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
13年11月9日土曜日
自分で関数を作る自作関数
> varp <- function(x) {
retsult <- var(x) * (length(x) - 1) / length(x)
retsult
}
> varp(array)
[1] 66.66667
関数の定義
処理を記述する 実行
13年11月9日土曜日
ここまで
•組み込み関数:基本的な演算が可能
• CSV:read.csv関数でCSV形式のデータを読み込める
•自作関数:自身で関数を定義できる
13年11月9日土曜日
処理
解析の流れデータ
レポート
変数配列行列
関数
パッケージ
自作関数
作図CSVデータフレーム
13年11月9日土曜日
ここでは
•作図関数
•外部パッケージの利用方法
13年11月9日土曜日
標準作図関数作図
•標準の関数でも色々と作図可能
目的 関数名ヒストグラム hist
散布図 plot箱ヒゲ図 boxplot・・・ ・・・
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html参考URL
13年11月9日土曜日
> x <- rnorm(50)
> hist(x, breaks=seq(-3, 3,1))
標準作図関数作図
13年11月9日土曜日
> x <- rnorm(50)
> hist(x, breaks=seq(-3, 3,1))
標準作図関数作図
乱数生成
ヒストグラム作図関数
13年11月9日土曜日
関数をまとめたもの
•複数の関数をまとめたもの
•様々なパッケージがCRANというシステムにて無料公開されている
•自作のパッケージも公開できる
パッケージ
13年11月9日土曜日
例
•作図パッケージggplot2を使えるようにする
13年11月9日土曜日
> install.packages(“ggplot2”)
> library("ggplot2")
外部パッケージパッケージ作図
13年11月9日土曜日
> install.packages(“ggplot2”)
> library("ggplot2") CRANからパッケージダウンロード&インストール
外部パッケージパッケージ作図
パッケージをロード
13年11月9日土曜日
a <- 1:10
b <- a^2
qplot(a,b)
qplotが利用可能パッケージ作図
13年11月9日土曜日
a <- 1:10
b <- a^2
qplot(a,b)
qplotが利用可能パッケージ作図
ggplot2パッケージの関数
13年11月9日土曜日
参考資料パッケージ作図
http://www.slideshare.net/dichika/ggplot213年11月9日土曜日
紹介:分析用もあるパッケージ
目的 パッケージ名主成分分析 stats(組み込み済)対応分析 MASS
クラスター分析 stats線形回帰分析 stats生存分析 survival
ニューラルネット nnet・・・ ・・・
処理
13年11月9日土曜日
詳細はこちらの書籍で
http://amazon.jp/dp/4627096011/
•過去にTokyoRでもテキストとして利用
13年11月9日土曜日
ここまで
•作図関数:可視化が可能
•パッケージ:CRANからダウンロードして利用する。作図用や分析用など色々ある
13年11月9日土曜日
処理
Rで一連の分析が可能データ
レポート13年11月9日土曜日
アジェンダ
•自己紹介とお知らせ
• Rって何
• Rの使い方
•Rの資料
13年11月9日土曜日
•日本語の資料
13年11月9日土曜日
seekR
http://seekr.jp/
• R言語用検索エンジン
13年11月9日土曜日
ちなみに•中の人がTokyoRで発表して下さいました!
http://www.slideshare.net/hiratake55/seekrjp-22281554
13年11月9日土曜日
RjpWiki• R言語のWikihttp://www.okada.jp.org/RWiki/
13年11月9日土曜日
Rコミュニティ発表資料http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage「勉強会発表内容一覧」のリンクから
• Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ
13年11月9日土曜日
RとSQLの対応付け• SQLが分かる人は一読の価値有りhttp://d.hatena.ne.jp/a_bicky/20110529/1306667230
13年11月9日土曜日
•以下海外のサイト(英語)
13年11月9日土曜日
CRAN Task Viws• Rには2000以上パッケージがある
•用途別におすすめパッケージを紹介
http://cran.r-project.org/web/views/
13年11月9日土曜日
R-Chart• Rでの作図のサンプルが多数あるhttp://www.r-chart.com/
13年11月9日土曜日
まとめ
•Rは無料の統計解析ソフト•データ解析からレポートまで利用可能•Web上の資料も充実
13年11月9日土曜日
まとめ
•Rは無料の統計解析ソフト•データ解析からレポートまで利用可能•Web上の資料も充実
是非使ってみましょう!
13年11月9日土曜日
ご清聴ありがとうございました
13年11月9日土曜日
質疑応答
13年11月9日土曜日
予備資料
13年11月9日土曜日
連携も可能
プロトタイピング実務利用
プログラミング言語寄り(カスタマイズ可能)
直感的な操作(用途は限定)
業務専用パッケージ
.C()関数
RExcel
13年11月9日土曜日
イケメンツールRStudio
13年11月9日土曜日
RStudio資料
http://www.slideshare.net/wdkz/rstudio-13866958
13年11月9日土曜日
初心者だけど2回目• 箕田さんの初心者セッション
• 集計、条件分岐、ループ、作図など
http://www.slideshare.net/aad34210/tokyo-r21
http://www.slideshare.net/aad34210/tokyo-r30-beginner
13年11月9日土曜日
Tips
13年11月9日土曜日
補足:クリップボード関数
#windowsの場合>hawks <- read.table("clipboard", header=TRUE,sep=’,’);#macの場合>hawks <- read.table(pipe("pbpaste"), header=TRUE,sep=’,’)> hawks height salary1 173 170002 178 140003 180 9000
クリップボードからも読み込み可能
CSV
13年11月9日土曜日
補足2:関数調べ方関数CSV
> ?read.table
> ??read.table
>help(read.table) ヘルプを
呼び出すことが出来る
13年11月9日土曜日
補足2:関数調べ方関数CSV
後半には用例もあるので参考に
> ?read.table
> ??read.table
>help(read.table)
13年11月9日土曜日