10分で分かるR言語入門ver2.1

Preview:

Citation preview

10分で分かるR言語入門 ver2.1

大城信晃

12年10月20日土曜日

http://sekico.co/zaseki/62

セキココ

12年10月20日土曜日

アジェンダ

•自己紹介とお知らせ• Rって何• Rの使い方• Rの資料

12年10月20日土曜日

アジェンダ

•自己紹介とお知らせ• Rって何• Rの使い方• Rの資料

12年10月20日土曜日

自己紹介• 名前:大城信晃• Twitter:doradora09• 職業:Webエンジニア• R:勉強中• TokyoRでは懇親会• マイブーム:• カクテル作り• カメラが欲しい

12年10月20日土曜日

Tokyo.R懇親会幹事 doradora09からの お知らせお読み下さい

12年10月20日土曜日

良いお知らせ

12年10月20日土曜日

前回:出張用カクテル

•小型化により20本突破!

12年10月20日土曜日

今回:さらに小型化!•ショルダーバッグ化により30本突破!•懇親会でどうぞ

12年10月20日土曜日

よくないお知らせ

12年10月20日土曜日

我らが主催者:里

12年10月20日土曜日

昨日のこと

12年10月20日土曜日

昨日のこと

本日欠席12年10月20日土曜日

では本題に

•自己紹介とお知らせ•Rって何• Rの使い方• Rの資料

12年10月20日土曜日

R言語(アールげんご)は、オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境である。

Wikipediaより引用

12年10月20日土曜日

オープンソース 個人が開発に参加できるフリーソフトウェア タダで使える統計解析向け 関連パッケージが豊富

プログラミング言語 ロジックが記述可能開発実行環境 Rコンソール

12年10月20日土曜日

用途で分類

プロトタイピング実務利用

プログラミング言語寄り

直感的な操作(GUI)

業務専用パッケージ

12年10月20日土曜日

連携も可能

プロトタイピング実務利用

プログラミング言語寄り(カスタマイズ可能)

直感的な操作(用途は限定)

業務専用パッケージ

.C()関数

RExcel

12年10月20日土曜日

特徴 価格 大規模データ

速度パッケージが豊富 無料 △

(メモリ依存)△

エクセル 直感的 1万~ ×(約100万行)

×

SAS 大規模データ処理 数十万~ ○ ○

C++ 高速開発コスト高

無料~数万

実装次第 ◎

他言語との比較

12年10月20日土曜日

での使われ方

•プロトタイプをRで作って検証• PythonやC++で実装

GoogleとFacebookではRをどうやって使っているのか? http://pracmper.blogspot.jp/2010/01/googlefacebookr.html

12年10月20日土曜日

こんな方におすすめ

•エクセルでは物足りない方•手軽に統計手法を試してみたい方

12年10月20日土曜日

アジェンダ

•自己紹介とお知らせ• Rって何•Rの使い方• Rの資料

12年10月20日土曜日

Rコンソール起動

12年10月20日土曜日

Rコンソール起動

ココに処理を記述していく

12年10月20日土曜日

例:足し算引き算

3+5 = 810-7 = 3

12年10月20日土曜日

処理

解析の流れデータ

レポート12年10月20日土曜日

処理

解析の流れデータ

レポート

変数配列行列

12年10月20日土曜日

値を入れる箱> hako <- 10

> hako

[1] 10

変数

12年10月20日土曜日

値を入れる箱> hako <- 10

> hako

[1] 10

変数

変数に値を入れる左矢印のイメージ

12年10月20日土曜日

値を入れる箱> hako <- 10

> hako

[1] 10

変数

変数名を打つと中の値が出る

12年10月20日土曜日

値を入れる箱> hako <- 10

> hako

[1] 10

> hako * 2

[1] 20

変数

変数に対して処理(かけ算)

12年10月20日土曜日

複数の値をまとめる> array <- c(10,20,30)

> array

[1] 10 20 30

> array * 2

[1] 20 40 60

配列

12年10月20日土曜日

複数の値をまとめる> array <- c(10,20,30)

> array

[1] 10 20 30

> array * 2

[1] 20 40 60

3つの値を配列に格納

配列

12年10月20日土曜日

複数の値をまとめる> array <- c(10,20,30)

> array

[1] 10 20 30

> array * 2

[1] 20 40 60

値の確認

配列

12年10月20日土曜日

複数の値をまとめる> array <- c(10,20,30)

> array

[1] 10 20 30

> array * 2

[1] 20 40 60

処理はすべての値に適用される

配列

12年10月20日土曜日

複数の値をまとめる> array[1]

[1] 10

> array[2]

[1] 20

> array[3]

[1] 30

配列[番号]で1個ずつ値を取り出せる

配列

12年10月20日土曜日

複数の値をまとめる> array[1]

[1] 10

> array[2]

[1] 20

> array[3]

[1] 30

配列

2個目

12年10月20日土曜日

複数の値をまとめる> array[1]

[1] 10

> array[2]

[1] 20

> array[3]

[1] 30

配列

3個目

12年10月20日土曜日

2次元の配列> array2 <- matrix(c(10,20,30,  

40,50,60), 2, 3)

> array2

[,1] [,2] [,3]

[1,] 10 30 50

[2,] 20 40 60

行列

12年10月20日土曜日

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という関数を利用して

作る

行列

12年10月20日土曜日

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列の行列

行列

12年10月20日土曜日

各要素の指定> array2[1,1]

[1] 10

> array2[1,]

[1] 10 30 50

> array2[,1]

[1] 10 20

1行1列を指定

行列

12年10月20日土曜日

各要素の指定> array2[1,1]

[1] 10

> array2[1,]

[1] 10 30 50

> array2[,1]

[1] 10 20

1行目全体を指定

行列

12年10月20日土曜日

各要素の指定> array2[1,1]

[1] 10

> array2[1,]

[1] 10 30 50

> array2[,1]

[1] 10 20 1列目全体を指定

行列

12年10月20日土曜日

処理

解析の流れデータ

レポート

変数配列行列

関数 行列自作関数

CSV

12年10月20日土曜日

処理の呼び出し関数

•関数は複数の処理をまとめたもの•関数名(引数) という書き方で呼び出す

12年10月20日土曜日

処理の呼び出し関数

目的 関数名と書式 使い方データの結合 C(データ) C(“C”,”B”,”B”)合計 sum(データ) sum(10,20,30)

個数を求める length(データ) length(array)平均 mean(データ) mean(array)標準偏差 sd(データ) sd(array)・・・ ・・・ ・・・

12年10月20日土曜日

合計を求める関数

> array

[1] 10 20 30

> sum(array)

[1] 60

12年10月20日土曜日

合計を求める関数

> array

[1] 10 20 30

> sum(array)

[1] 60

先ほどの配列array

12年10月20日土曜日

合計を求める関数

> array

[1] 10 20 30

> sum(array)

[1] 60

関数名(引数)で処理呼び出し

12年10月20日土曜日

合計を求める関数

> array

[1] 10 20 30

> sum(array)

[1] 60 処理結果が出力される

12年10月20日土曜日

合計を求める関数> array2

[,1] [,2] [,3]

[1,] 10 30 50

[2,] 20 40 60

> sum(array2)

[1] 210

先ほどの行列を渡した場合

12年10月20日土曜日

合計を求める> array2

[,1] [,2] [,3]

[1,] 10 30 50

[2,] 20 40 60

> sum(array2)

[1] 210

合計値が表示される

関数

12年10月20日土曜日

結果を格納関数

> ret <- sum(array2)

> ret

[1] 210 処理結果を変数に格納

変数

12年10月20日土曜日

結果を格納関数

> ret <- sum(array2)

> ret

[1] 210 合計値の確認

変数

12年10月20日土曜日

処理

解析の流れデータ

レポート

変数配列行列

関数 行列自作関数

CSV

12年10月20日土曜日

CSV読み込み

•変数に毎回データを手入力するのは面倒• CSVファイルを読み込む関数がある•エクセル等の外部データ連携に利用

関数CSV

12年10月20日土曜日

関数CSV> hawks <- read.csv("hawks.csv")

> hawks

height salary

1 173 17000

2 178 14000

3 180 9000

CSV読み込み

12年10月20日土曜日

関数CSV> hawks <- read.csv("hawks.csv")

> hawks

height salary

1 173 17000

2 178 14000

3 180 9000

read.csv関数にCSVファイルを

渡す

CSV読み込み

12年10月20日土曜日

CSV読み込み関数CSV> hawks <- read.csv("hawks.csv")

> hawks

height salary

1 173 17000

2 178 14000

3 180 9000

CSVファイルの取り込みが確認できる

12年10月20日土曜日

処理

解析の流れデータ

レポート

変数配列行列

関数 行列自作関数

CSV

12年10月20日土曜日

自分で関数を作る

•関数は自分で定義することも可能•繰り返し使う処理は自作関数にする

自作関数

12年10月20日土曜日

自分で関数を作る自作関数

> varp <- function(x) {

retsult <- var(x) * (length(x) - 1) / length(x)

retsult

}

> varp(array)

[1] 66.66667

12年10月20日土曜日

自分で関数を作る自作関数

> varp <- function(x) {

retsult <- var(x) * (length(x) - 1) / length(x)

retsult

}

> varp(array)

[1] 66.66667

関数名 <- function (引数) { 処理

}

関数の定義

12年10月20日土曜日

自分で関数を作る自作関数

> varp <- function(x) {

retsult <- var(x) * (length(x) - 1) / length(x)

retsult

}

> varp(array)

[1] 66.66667

定義された処理が実行される(不偏分散の算出)

12年10月20日土曜日

処理

解析の流れデータ

レポート

変数配列行列

関数 行列

パッケージ

自作関数

作図

CSV

12年10月20日土曜日

関数をまとめたもの

•複数の関数をまとめられる•自作のパッケージも公開できる•外部のパッケージも利用可能

パッケージ

12年10月20日土曜日

外部パッケージ

•外部パッケージはCRANに集約•すべて無料でダウンロードできる

パッケージ

12年10月20日土曜日

> install.packages(“ggplot2”)

> library("ggplot2") CRANからパッケージダウンロード&インストール

外部パッケージパッケージ作図

12年10月20日土曜日

> install.packages(“ggplot2”)

> library("ggplot2") パッケージをロード

外部パッケージパッケージ作図

12年10月20日土曜日

a <- 1:10

b <- a^2

qplot(a,b)新たに

qplot関数が使える

外部パッケージパッケージ作図

12年10月20日土曜日

a <- 1:10

b <- a^2

qplot(a,b)

qplot実行結果パッケージ作図

12年10月20日土曜日

その他作図関数パッケージ作図

•標準の関数でも作図可能目的 関数名と書式 使い方

ヒストグラム hist(データ) hist(array)

散布図 plot(x, y) plot(a,b)

・・・ ・・・ ・・・

12年10月20日土曜日

処理

一連の作業がすべて可能データ

レポート12年10月20日土曜日

アジェンダ

•自己紹介とお知らせ• Rって何• Rの使い方•Rの資料

12年10月20日土曜日

CRAN Task Viws• Rには2000以上パッケージがある•用途別におすすめパッケージを紹介http://cran.r-project.org/web/views/

12年10月20日土曜日

seekR

http://seekr.jp/

• R言語用検索エンジン

12年10月20日土曜日

RjpWiki• R言語のWikihttp://www.okada.jp.org/RWiki/

12年10月20日土曜日

Rコミュニティ発表資料http://lab.sakaue.info/wiki.cgi/JapanR2010?page=FrontPage「勉強会発表内容一覧」のリンクから

• Tokyo.R, Nagoya.R, Tukuba.Rのアーカイブ

12年10月20日土曜日

RとSQLの対応付け• SQLが分かる人は一読の価値有りhttp://d.hatena.ne.jp/a_bicky/20110529/1306667230

12年10月20日土曜日

R-Chart• Rでの作図のサンプルが多数あるhttp://www.r-chart.com/

12年10月20日土曜日

まとめ

•Rは無料の統計解析ソフト•パッケージが豊富•データ解析からレポートまで利用可能

12年10月20日土曜日

ご清聴ありがとうございました

12年10月20日土曜日

質疑応答

12年10月20日土曜日

予備資料

12年10月20日土曜日

イケメンツールRStudio

12年10月20日土曜日

Recommended