10分で分かるr言語入門ver2.2 13 0223

Post on 19-Jun-2015

1.900 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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日土曜日

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日土曜日

top related