SlideShare ist ein Scribd-Unternehmen logo
1 von 33
<#>
続
はじめての
TOKYO.R #47
簑田 高志
目次
1. 自己紹介
2. 前回までのあらすじ
3. 続・はじめてのR
4. まとめ
※ スクリーンショットや機能等はMac版となります。
• 名前 :簑田 高志
• Twitter :aad34210
• ブログ :http://pracmper.blogspot.com/
• 仕事 :Eコマースサービス アナリスト
自己紹介
前回までのあらすじ
• はじめてRをさわる方、Rを触り初めて数カ月の方に向けて、
Rの基礎的な部分をお話ししました。
• どんな内容だったかというと…
1. インストール
2. 起動と終了
3. demo()の利用
4. データへのアクセス方法
5. データ集計方法
6. 関数
7. 自作関数(Function)
8. パッケージ
• 前回の資料はSlideshareに公開しています。
 http://www.slideshare.net/aad34210/tokyo-r38
今回の話
• 今回の話は前回の続き。
• Rの基礎編です。
i. 条件分岐
ii. ループ
iii.グラフ作成
iv.統計解析
• 効率的に分析するために必要な「道具」を紹介します。
• 資料中は、コードと例文を以下のようにハイライトしてい
ます。
• 基本コード:Sample
• 例文: Sample
<#>
条件分岐
条件分岐
• ある条件で場合分けをしたい場合に利用する。
値:A
条件
値:Z 値:K
A >= 0 → K
A < 0 → Z
条件分岐
• 条件分岐とは?
• ある条件で場合分けをしたい場合はIf文、Else文を使う。
• if (条件文){処理内容}
• 例えば…
• 売上金額が10万以上であれば、A-Class、それ以外はOther。
x <- 100000
if (x >= 100000)
{print ("A-Class")} else {print("Other")}
条件分岐
• IFELSE文
• IFELSE文で一つのコードでIF文ができる。
• ifelse(条件,データが真の場合,偽の場合)
• 例えば…
• 売上金額が10万以上であれば、Aクラス、それ以外はOther。
x <- 100000
ifelse(x >= 100000 , "A-Class" , "Other")
条件分岐
• SWITCH文
• 複数の条件で分岐させたい場合
• switch(データ,ケース1 , ケース2 , 一致する場合がないケース)
• 例えば…
• Tokyoから売上が上がっている場合は、Japanを。それ以外はOther
city <- "Tokyo”
switch(city ,"Tokyo" = print("Japan") , print("Other"))
<#>
ループ
ループ
• For文は他のプログラミング言語と同じように、「繰り返し」処理ができる。
• 幾つもの同じような処理をコピペして処理をさせなくても、ループ処理を利用す
ることにより、大幅に作業時間を減らすことができる。
処理A
処理A 処理A
処理A 処理A
4回同じ処理を繰り返す
繰り返し文を利用し
て処理を4回行う。
FOR文
• For文
• ある処理を繰り返し行いたい場合に利用する。
• for (ループ変数 in リスト) {処理}
• 例えば…
• 1〜5までを合計する。
• ベクトルを表示させる。
x <- 0
for (i in 1:5) {x <- x +1}
x
x <- c(10000 , 20000 , 30000)
for (i in 1:length(x)){print(x[i])}
WHILE文
• While文
• ある条件が成り立っている場合にずっとループ処理をし続ける。
• 注意:ずっと条件が成り立っている場合は、無限ループしてしまうので、気
をつけること。
• while (条件式) {処理}
• 例えば…
• 5以下を足し続ける。
x <- 0
while (x <= 4) {x <- x +1}
x
<#>
グラフ作成
グラフ作成
• データを解析する前に、変数がどのような分布になっているかをビジュアルで確
認して、データの分布等を確かめる。
• 結果をレポートとしてまとめ、レビュアー(報告者)への理解を深めるためにグラ
フを作成する。
• グラフ作成は「奥が深い」ため、今回は代表的なグラフのみ紹介して、残りの
パッケージ等はAppendixとして紹介します。
1,2,3,
4,5,6,
7,8,9
…
データ
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.55.56.57.5
2.02.53.03.54.0
Sepal.Width
Petal.Length
1234567
4.5 5.5 6.5 7.5
0.51.01.52.02.5
1 2 3 4 5 6 7
Petal.Width
Edgar Anderson's Iris Data
-35-30-25-20-15-10
165 170 175 180 185
165 170 175 180 185 165 170 175 180 185
-35-30-25-20-15-10
long
lat
100 200 300 400 500 600
Given : depth
1 2 3 4 5 6 7 8 9 10
0246
Notched Boxplots
Group
散布図
• データがどのような散らばり具合をしているのかを調査したい場合、散布図を
描きます。
• plot(x , y)
#ベクトルの表示
data <- c(1:100)
plot(data)
#irisのSepal.lengthとSepal.Widthの散布図
plot(iris[,1] , iris[,2])
0 20 40 60 80 100
020406080100
Index
data
#ベクトルの表示
4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0
2.02.53.03.54.0
iris[, 1]
iris[,2]
#irisのSepal.lengthと
Sepal.Widthの散布図
散布図
• 変数が多くある場合、変数の1つずつの組み合わせだと手間がかかるので、一
気に組み合わせてみてみたい場合。
• plot(dataframe)
• pars(dataframe)
#複数変数の散布図組合せ(対散布図)
plot(iris[-5])
#複数変数の対散布図(種類による色分け)
pairs(iris[1:4], pch = 21,bg = c("red" , "green3" ,
"blue")[unclass(iris$Species)])
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.55.56.57.5
2.02.53.03.54.0
Sepal.Width
Petal.Length
1234567
4.5 5.5 6.5 7.5
0.51.01.52.02.5
1 2 3 4 5 6 7
Petal.Width
散布図
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.55.56.57.5
2.02.53.03.54.0
Sepal.Width
Petal.Length
1234567
4.5 5.5 6.5 7.5
0.51.01.52.02.5
1 2 3 4 5 6 7
Petal.Width
#複数変数の散布図組合せ(対散布図) #複数変数の対散布図(種類による色分け)
線グラフ(折れ線グラフ)
• データがどのように変化しているのかを分かるようにする。
• 実は折れ線グラフは散布図にラインを引いただけなので比較的簡単に作成で
きます。(type = “l”を指定)
• plot(データ , type = “l”)
#aho_dataを使って折れ線グラフ
plot(aho_data[,1] , type = "l”)
0 20 40 60 80 100
020406080100
Index
aho_data[,1]
棒グラフ(1)
• データがどの因子でどのぐらいボリュームになっているかを一目で分かる。
• barplot(データ)
#単純な棒グラフ
barplot(1:10)
#色つき棒グラフ
barplot(matrix(1:20, 5), col=rainbow(5))
0246810
#単純な棒グラフ
020406080
#色つき棒グラフ
棒グラフ(2)
• データがどの因子でどのぐらいボリュームになっているかを一目で分かる。
• barplot(データ)
#種類ごとでの棒グラフ
barplot(table(iris[,5]))
#色を付けたい場合
barplot(table(iris[,5]),col = c("red" ,
"green" ,"yellow"))
#単純な棒グラフ #色つき棒グラフ
setosa versicolor virginica
01020304050
setosa versicolor virginica
01020304050
参考(1):ggplot2
• これまで紹介したのはRのデフォルトで利用できるパッケージ。
• 自分で色々と細かく設定できるのがメリットですが、簡単に綺麗なグラフを書き
たい場合は、ggplot2というパッケージがおすすめ。
• 過去に発表しています。
• http://www.slideshare.net/aad34210/ggplot2-110129-6739813
参考(2):demo()
• demo()という関数を利用することで、パッケージの参照デモをみることができま
す。
#demo()のgraphicsを見てみる
demo(graphics)
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.55.56.57.5
2.02.53.03.54.0
Sepal.Width
Petal.Length
1234567
4.5 5.5 6.5 7.5
0.51.01.52.02.5
1 2 3 4 5 6 7
Petal.Width
Edgar Anderson's Iris Data
-35-30-25-20-15-10
165 170 175 180 185
165 170 175 180 185 165 170 175 180 185
-35-30-25-20-15-10
long
lat
100 200 300 400 500 600
Given : depth
1 2 3 4 5 6 7 8 9 10
0246
Notched Boxplots
Group
参考(3):rCharts、googlevis
• ここ1年で「静的」なチャートだけでなく「動的」なチャートを作れるように。
• rCharts :http://rcharts.io/
参考(3):rCharts、googlevis
• ここ1年で「静的」なチャートだけでなく「動的」なチャートを作れるように。
• googlevis :http://decastillo.github.io/googleVis_Tutorial/#1
参考(3):rCharts、googlevis
• googlevisのPackage作成者が日本に来て話をしてくれました!
• http://togetter.com/li/656355
<#>
統計解析
統計解析
• グラフ作成と同様に奥のふかーい分野。
• 今回はデータ全体がどのような分布になっているかを簡単に調査するための関数を紹介。
#最大値
max(data[,1])
#最小値
min(data[,1])
#レンジ(最大値、最小値)
range(data[,1])
#平均
mean(data[,1])
#中央値
median(data[,1])
#四分位点
quantile(data[,1] )
#サマリ(平均値、中央値、四分位点)
summary(data[,1])
各種統計パッケージの話は、過去や今後のTokyoRで見てみてください!
<#>
まとめ
まとめ
• IF文
• 条件分岐をさせたい時に利用する。ifelse も使えるよ
• For文
• 繰り返し処理を行いたい場合に利用する。
• 条件が正の場合に繰り返し処理をするWhileもある。
• グラフ作成
• 奥の深い世界…
• demo(graphics)で試してみよう。
• plot,barplot
• ggplot2など様々なパッケージがある。
• 動的なチャートも作成できる。
• 統計解析
• 簡単な関数で、統計量を計算することができる。
• max,min,range,quantile,summary
参考文献・資料
R-Tipe :http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
The R tips :http://ow.ly/9yFPs
ggplot2 :http://had.co.nz/ggplot/
rcharts :http://rcharts.io/
http://www.slideshare.net/teramonagi/tokyo-r31-20130601
googlevis :http://lamages.blogspot.co.uk/2013/07/googlevis-tutorial-at-user2013.html
ご清聴ありがとうございました
m(___)m

Weitere ähnliche Inhalte

Was ist angesagt?

MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出
JAVA DM
 

Was ist angesagt? (20)

10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
Tokyo r39 beginner
Tokyo r39 beginnerTokyo r39 beginner
Tokyo r39 beginner
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
 
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
 
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
 
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaueHiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
 
Tokyo r21 修正版
Tokyo r21 修正版Tokyo r21 修正版
Tokyo r21 修正版
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
 
Gensim
GensimGensim
Gensim
 
20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオン20170312 r言語環境構築&amp;dplyr ハンズオン
20170312 r言語環境構築&amp;dplyr ハンズオン
 
MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出
 

Ähnlich wie Tokyo r47 beginner_2

Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
Masahiro Tanaka
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
Haruka Ozaki
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
Yuichiro Kobayashi
 

Ähnlich wie Tokyo r47 beginner_2 (20)

Tokyo r45 beginner_2
Tokyo r45 beginner_2Tokyo r45 beginner_2
Tokyo r45 beginner_2
 
Scala による自然言語処理
Scala による自然言語処理Scala による自然言語処理
Scala による自然言語処理
 
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
 
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオンSageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
Tokyo r27
Tokyo r27Tokyo r27
Tokyo r27
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
Tokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorialTokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorial
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
Azure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data LakeAzure Antenna はじめての Azure Data Lake
Azure Antenna はじめての Azure Data Lake
 

Mehr von Takashi Minoda

Mehr von Takashi Minoda (17)

Introduction r (R入門)
Introduction r (R入門)Introduction r (R入門)
Introduction r (R入門)
 
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
 
RからGoogle Cloud Vision API を利用する
RからGoogle Cloud Vision API を利用するRからGoogle Cloud Vision API を利用する
RからGoogle Cloud Vision API を利用する
 
TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成
 
Rとデータベース 第61回 Tokyo.R
Rとデータベース 第61回 Tokyo.RRとデータベース 第61回 Tokyo.R
Rとデータベース 第61回 Tokyo.R
 
Tokyo r49 beginner
Tokyo r49 beginnerTokyo r49 beginner
Tokyo r49 beginner
 
Tokyo r47 beginner
Tokyo r47 beginnerTokyo r47 beginner
Tokyo r47 beginner
 
Tokyo r30 anova_part2
Tokyo r30 anova_part2Tokyo r30 anova_part2
Tokyo r30 anova_part2
 
Tokyo r30 anova
Tokyo r30 anovaTokyo r30 anova
Tokyo r30 anova
 
Tokyo r21 2
Tokyo r21 2Tokyo r21 2
Tokyo r21 2
 
Tokyo r18
Tokyo r18Tokyo r18
Tokyo r18
 
Tokyo r sqldf
Tokyo r sqldfTokyo r sqldf
Tokyo r sqldf
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
Japan r 101127
Japan r 101127Japan r 101127
Japan r 101127
 
Tokyo r r_excel
Tokyo r r_excelTokyo r r_excel
Tokyo r r_excel
 
Tokyo r no8_海外サイトの紹介
Tokyo r no8_海外サイトの紹介Tokyo r no8_海外サイトの紹介
Tokyo r no8_海外サイトの紹介
 

Tokyo r47 beginner_2