<#>
続
はじめての
TOKYO.R #39
簑田 高志
目次
1. 自己紹介
2. 前回までのあらすじ
3. 続・はじめてのR
4. まとめ
※ スクリーンショットや機能等はMac版となります。
• 名前 :簑田 高志
• Twitter :aad34210
• ブログ :http://pracmper.blogspot.com/
• 出身地 :熊本県
• 出身学部 :法学部
• 仕事 :インターネット広告のビジネスアナリスト
自己紹介
前回までのあらすじ
• はじめて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
例題
• IF文(条件分岐)、For文(繰り返し)、Function(自作関数(前回説明))を組み
合わせると、処理がまとまり、関数化することができる。
• → 処理の自動化が可能。
for (i in 1:100) {print(ifelse( i%%2 == 0 , "Fiz" , ”Buz" ))}
• 問題
• 1〜100までの数字の中で、2の倍数であれば、“Fiz”、それ以外は数を表
示するプログラムを作成しなさい。
• 回答
• For文で1:100までをベクトル生成
• 2の倍数:“%%”で余りを計算
• 2の倍数の余りをIFELSE文で判定。
• Print文で表示
<#>
グラフ作成
グラフ作成
• データを解析する前に、変数がどのような分布になっているかをビジュアルで確
認して、データの分布等を確かめる。
• 結果をレポートとしてまとめ、レビュアー(報告者)への理解を深めるためにグラ
フを作成する。
• グラフ作成は「奥が深い」ため、今回は代表的なグラフのみ紹介して、残りの
パッケージ等は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
aho
01020304050
棒グラフ(3)
• 先ほどの“Aho”、“アホ”をそれぞれカウントして棒グラフを作ってみましょう。
#データフレームの作成
aho_data <- data.frame(1:100)
#グラフ用データの作成
aho_data$hantei <- ifelse(aho_data[,1]%%3 == 0,"aho",ifelse(aho_data[,1]%%5 == 0 ,"アホ","天才
"))
#Barplotの作成
barplot(table(aho_data[,2]) , col = c("green" , "blue" , "red"))
参考(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

More Related Content

PPTX
Tokyo r38
PPTX
Tokyo r30 beginner
PPTX
Tokyo r47 beginner_2
PDF
10分で分かるr言語入門ver2.10 14 1101
PPTX
Tokyo r33 beginner
PPTX
Tokyo r50 beginner_2
PPTX
Tokyo r28 1
PDF
10分で分かるr言語入門ver2 upload用
Tokyo r38
Tokyo r30 beginner
Tokyo r47 beginner_2
10分で分かるr言語入門ver2.10 14 1101
Tokyo r33 beginner
Tokyo r50 beginner_2
Tokyo r28 1
10分で分かるr言語入門ver2 upload用

What's hot (20)

PDF
10分で分かるr言語入門ver2.15 15 1010
PDF
10分で分かるr言語入門ver2.14 15 0905
PDF
2016年6月版データマエショリスト入門
PDF
10分で分かるr言語入門ver2.9 14 0920
PDF
HiRoshimaR3_IntroR
PDF
HiroshimaR6_Introduction
PDF
HiroshimaR4_LT_sakaue
PDF
R入門(dplyrでデータ加工)-TokyoR42
PDF
Scala勉強会 2015 02_03
PDF
JASELE2015-KumamotoWS
PDF
Gensim
PDF
Gorinphp0729
PDF
10分で分かるr言語入門ver2.5
PDF
Why dont you_create_new_spark_jl
PDF
Oracle Cloud Developers Meetup@東京
PPTX
Nagoya.R #14 入門者講習
PPTX
R超入門機械学習をはじめよう
PDF
Infer.NETを使ってLDAを実装してみた
PDF
すごいHaskell読書会 第六章 発表資料
PDF
2017年3月版データマエショリスト入門
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.14 15 0905
2016年6月版データマエショリスト入門
10分で分かるr言語入門ver2.9 14 0920
HiRoshimaR3_IntroR
HiroshimaR6_Introduction
HiroshimaR4_LT_sakaue
R入門(dplyrでデータ加工)-TokyoR42
Scala勉強会 2015 02_03
JASELE2015-KumamotoWS
Gensim
Gorinphp0729
10分で分かるr言語入門ver2.5
Why dont you_create_new_spark_jl
Oracle Cloud Developers Meetup@東京
Nagoya.R #14 入門者講習
R超入門機械学習をはじめよう
Infer.NETを使ってLDAを実装してみた
すごいHaskell読書会 第六章 発表資料
2017年3月版データマエショリスト入門
Ad

Viewers also liked (20)

PPTX
R勉強会40回lt
PDF
ハイブリッド型樹木法
PDF
Dynamic panel in tokyo r
PDF
20140614 tokyo r lt
PDF
PDF
チェビシェフの不等式
PDF
独立成分分析とPerfume
PPTX
Tokyo R #39
PDF
家に早く帰りたい
PDF
Rでダイエット
PDF
((Rで) 書く ((もっとRっぽい) Lisp) インタプリタ)
PDF
お前の逐モン、GETだぜ!
PDF
Tokyor39 yokkuns
PDF
rstanで個人のパラメーターを推定した話
PDF
#TokyoR 39 高速に前処理するNYSOL
PDF
Rで野球データ解析がしたい ( pitchRxを使う )
PDF
Rstudio事始め
PDF
エクセルで統計分析 統計プログラムHADについて
PDF
はじめての「R」
PDF
Stanコードの書き方 中級編
R勉強会40回lt
ハイブリッド型樹木法
Dynamic panel in tokyo r
20140614 tokyo r lt
チェビシェフの不等式
独立成分分析とPerfume
Tokyo R #39
家に早く帰りたい
Rでダイエット
((Rで) 書く ((もっとRっぽい) Lisp) インタプリタ)
お前の逐モン、GETだぜ!
Tokyor39 yokkuns
rstanで個人のパラメーターを推定した話
#TokyoR 39 高速に前処理するNYSOL
Rで野球データ解析がしたい ( pitchRxを使う )
Rstudio事始め
エクセルで統計分析 統計プログラムHADについて
はじめての「R」
Stanコードの書き方 中級編
Ad

Similar to Tokyo r39 beginner (20)

PPTX
Tokyo r45 beginner_2
PPTX
Tokyo r47 beginner
PDF
Rあんなときこんなとき(tokyo r#12)
PDF
第1回R勉強会@東京
PPTX
Tokyo r49 beginner
PPT
K020 appstat201202
PDF
2017年3月版データマエショリスト入門(誤植修正版)
PDF
初心者のためのRとRStudio入門 vol.2
PPT
K010 appstat201201
PPT
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
PDF
初心者講習会資料(Osaka.R#5)
PDF
Tokyor23 doradora09
PPT
K030 appstat201203 2variable
PDF
Tokyor60 r data_science_part1
PDF
LET2011: Rによる教育データ分析入門
PDF
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
PPTX
Tokyo.R #67 初心者セッション3
PDF
20180129 ビジネスデータ分析勉強会
PDF
R language definition3.1_3.2
PDF
初心者講習会資料(Osaka.R#7)
Tokyo r45 beginner_2
Tokyo r47 beginner
Rあんなときこんなとき(tokyo r#12)
第1回R勉強会@東京
Tokyo r49 beginner
K020 appstat201202
2017年3月版データマエショリスト入門(誤植修正版)
初心者のためのRとRStudio入門 vol.2
K010 appstat201201
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
初心者講習会資料(Osaka.R#5)
Tokyor23 doradora09
K030 appstat201203 2variable
Tokyor60 r data_science_part1
LET2011: Rによる教育データ分析入門
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
Tokyo.R #67 初心者セッション3
20180129 ビジネスデータ分析勉強会
R language definition3.1_3.2
初心者講習会資料(Osaka.R#7)

More from Takashi Minoda (18)

PDF
Introduction r (R入門)
PPTX
RStudioでRをはじめよう(R for Beginner using RStudio)
PPTX
RからGoogle Cloud Vision API を利用する
PPTX
TokyoR:RMarkdownでレポート作成
PPTX
Rとデータベース 第61回 Tokyo.R
PPTX
Tokyo r30 anova_part2
PPTX
Tokyo r30 anova
PPTX
Tokyo r27
PPTX
Tokyo r24 r_graph_tutorial
PPTX
Tokyo r21 修正版
PPTX
Tokyo r21 2
PDF
Tokyo r18
PDF
Tokyo r sqldf
PDF
ggplot2 110129
ODP
ggplot2 110129
PPT
Japan r 101127
ODP
Tokyo r r_excel
PDF
Tokyo r no8_海外サイトの紹介
Introduction r (R入門)
RStudioでRをはじめよう(R for Beginner using RStudio)
RからGoogle Cloud Vision API を利用する
TokyoR:RMarkdownでレポート作成
Rとデータベース 第61回 Tokyo.R
Tokyo r30 anova_part2
Tokyo r30 anova
Tokyo r27
Tokyo r24 r_graph_tutorial
Tokyo r21 修正版
Tokyo r21 2
Tokyo r18
Tokyo r sqldf
ggplot2 110129
ggplot2 110129
Japan r 101127
Tokyo r r_excel
Tokyo r no8_海外サイトの紹介

Recently uploaded (6)

PDF
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
PDF
高所作業プラットフォーム業界の上位メーカーランキング2025:市場シェアと売上推移の分析レポート
PPTX
20250819 Qlik Tips AI assistants (SQLアシスタントとデータモデルリレーションシップ)
PPTX
QlikTips_20250819_Qlik Automate Update.pptx
PDF
LEDビジョンレンタル市場規模の成長見通し:2031年には1934百万米ドルに到達へ
PDF
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
高所作業プラットフォーム業界の上位メーカーランキング2025:市場シェアと売上推移の分析レポート
20250819 Qlik Tips AI assistants (SQLアシスタントとデータモデルリレーションシップ)
QlikTips_20250819_Qlik Automate Update.pptx
LEDビジョンレンタル市場規模の成長見通し:2031年には1934百万米ドルに到達へ
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~

Tokyo r39 beginner