SlideShare ist ein Scribd-Unternehmen logo
1 von 33
<#>
続
はじめての
TOKYO.R #45
簑田 高志
目次
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 >= 200000)
{print ("A-Class")} else {print("Other")}
条件分岐
• IFELSE文
• IFELSE文で一つのコードでIF文ができる。
• ifelse(条件,データが真の場合,偽の場合)
• 例えば…
• 売上金額が10万以上であれば、Aクラス、それ以外はOther。
x <- 100000
ifelse(x >= 100000 , "A-Class" , "B-Class")
条件分岐
• 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(aho_data[,1])
#最小値
min(aho_data[,1])
#レンジ(最大値、最小値)
range(aho_data[,1])
#平均
mean(aho_data[,1])
#中央値
median(aho_data[,1])
#四分位点
quantile(aho_data[,1] )
#サマリ(平均値、中央値、四分位点)
summary(aho_data[,1])
各種統計パッケージの話は、過去や今後のTokyoRで見てみてください!
<#>
まとめ
まとめ
• IF文
• 条件分岐をさせたい時に利用する。ifelse も使えるよ
• For文
• 繰り返し処理を行いたい場合に利用する。
• 条件が正の場合に繰り返し処理をするWhileもある。
• FizzBuzz
• IF文とFor文を使って、FizzBuzz問題を解く。
• グラフ作成
• 奥の深い世界…
• 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?

Was ist angesagt? (20)

Rとデータベース 第61回 Tokyo.R
Rとデータベース 第61回 Tokyo.RRとデータベース 第61回 Tokyo.R
Rとデータベース 第61回 Tokyo.R
 
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
 
Tableau r graph_theory
Tableau r graph_theoryTableau r graph_theory
Tableau r graph_theory
 
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
 
dplyrとは何だったのか
dplyrとは何だったのかdplyrとは何だったのか
dplyrとは何だったのか
 
Tableau r graph_theory
Tableau r graph_theoryTableau r graph_theory
Tableau r graph_theory
 
Introduction of neo4j
Introduction of neo4jIntroduction of neo4j
Introduction of neo4j
 
Rstudio事始め
Rstudio事始めRstudio事始め
Rstudio事始め
 
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
SparkとJupyterNotebookを使った分析処理 [Html5 conference]SparkとJupyterNotebookを使った分析処理 [Html5 conference]
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
Big datauniversity
Big datauniversityBig datauniversity
Big datauniversity
 
Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13
 
What makes Apache Spark?
What makes Apache Spark?What makes Apache Spark?
What makes Apache Spark?
 
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tableauから始める機械学習ーやってみようPython連携_2019-05-23Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
 
SmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォーム
 
200319 eash python_shareslide
200319 eash python_shareslide200319 eash python_shareslide
200319 eash python_shareslide
 
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイントApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
 
データマート対応した話
データマート対応した話データマート対応した話
データマート対応した話
 

Andere mochten auch

Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
ksmzn
 
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みTokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Yohei Sato
 

Andere mochten auch (9)

Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理Jenkins によるレポートスクリプト管理
Jenkins によるレポートスクリプト管理
 
前処理のための前処理(Tokyo.R#45)
前処理のための前処理(Tokyo.R#45)前処理のための前処理(Tokyo.R#45)
前処理のための前処理(Tokyo.R#45)
 
R45LT
R45LTR45LT
R45LT
 
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
Shinyで確率分布を学ぶアプリ作った。あるいは、ShinyでD3.jsを使う方法
 
DeployR使ってみた話
DeployR使ってみた話DeployR使ってみた話
DeployR使ってみた話
 
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組みTokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
Tokyor45 カーネル多変量解析第2章 カーネル多変量解析の仕組み
 
Julia最新情報 2015
Julia最新情報 2015Julia最新情報 2015
Julia最新情報 2015
 
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用10分で分かるr言語入門 短縮バージョン 15-0117_upload用
10分で分かるr言語入門 短縮バージョン 15-0117_upload用
 
Estimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learningEstimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learning
 

Ähnlich wie Tokyo r45 beginner_2

10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
 

Ähnlich wie Tokyo r45 beginner_2 (20)

Tokyo r47 beginner_2
Tokyo r47 beginner_2Tokyo r47 beginner_2
Tokyo r47 beginner_2
 
Tokyo r39 beginner
Tokyo r39 beginnerTokyo r39 beginner
Tokyo r39 beginner
 
Tokyo r33 beginner
Tokyo r33 beginnerTokyo r33 beginner
Tokyo r33 beginner
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
 
Scala による自然言語処理
Scala による自然言語処理Scala による自然言語処理
Scala による自然言語処理
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
 
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Tokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorialTokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorial
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオンSageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 

Mehr von Takashi Minoda

Mehr von Takashi Minoda (18)

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でレポート作成
 
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 r27
Tokyo r27Tokyo r27
Tokyo r27
 
Tokyo r21 修正版
Tokyo r21 修正版Tokyo r21 修正版
Tokyo r21 修正版
 
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 r45 beginner_2