More Related Content Similar to Tokyo r33 beginner Similar to Tokyo r33 beginner (20) More from Takashi Minoda (16) Tokyo r33 beginner3. • 名前 :簑田 高志
• Twitter :aad34210
• ブログ :http://pracmper.blogspot.com/
• 出身地 :熊本県
• 出身学部 :法学部
• 仕事 :インターネット広告のビジネスアナリ
スト
自己紹介
12. 条件分岐
• SWITCH文
• 複数の条件で分岐させたい場合
• switch(データ,ケース1 , ケース2 , 一致する場合がないケース)
• 例えば…
• Tokyoから売上が上がっている場合は、Japanを。それ以外はOther
city <- "Tokyo”
switch(city ,"Tokyo" = print("Japan") , print("Other"))
15. 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])}
18. 例題(2)
• 前のページの問題は意外とすぐにとける
• 問題
• 1〜100までの数字の中で、
• 3の倍数 :“Aho” と表示
• 5 の倍数 :“アホ” と表示
• 回答
• For文で1:100までをベクトル生成
• 3の倍数:“%%”で余りを計算し割り切れる数を判定
• 5の倍数:“%%”で余りを計算し割り切れる数を判定
• それぞれIF文で“Aho”か“アホ”か判定
• Print文で表示
• では、世界のナベアツでやってみよう。
19. 例題(3)
for( i in 1:100) {
if (i%%3 == 0 ) {print("Aho")}
else if (i%%5 == 0) {print("アホ")}
else {print(i)}
}
nabeatsu <- function(n , baisuu1 , baisuu2) {
for( i in 1:n) {
if (i%%baisuu1 == 0 ) {print("Aho")}
else if (i%%baisuu2 == 0) {print("アホ")}
else {print(i)}
}
}
関数化(Function)にしてみよう。
利用する変数
・ベクトル数 :n
・Ahoと表示する倍数 :baisuu1
・アホと表示する倍数 :baisuu2
21. 例題(3)本当の世界のナベアツを実装してみた
# 3の倍数はアホ、3の着く数字はAho
true_nabeatsu <- function(n , baisuu1 , baisuu2) {
for( i in 1:n) {
if (i%%baisuu1 == 0 ) {print("Aho")}
else if (!i%%baisuu2|grepl(baisuu2,i) == TRUE) {print("アホ")}
else {print(i)}
}
}
true_nabeatsu(100 , 5 , 3)
• 問題
• 1〜100までの数字の中で、
• 3の倍数 :“Aho” と表示
• 3がつく数 :“アホ” と表示
23. グラフ作成
• データを解析する前に、変数がどのような分布になっているかをビジュ
アルで確認して、データの分布等を確かめる。
• 結果をレポートとしてまとめ、レビュアー(報告者)への理解を深める
ためにグラフを作成する。
• グラフ作成は「奥が深い」ため、今回は代表的なグラフのみ紹介して、
残りのパッケージ等は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
24. 散布図
• データがどのような散らばり具合をしているのかを調査したい場合、散
布図を描きます。
• 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の散布図
26. 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
#複数変数の散布図組合せ(対散布図) #複数変数の対散布図(種類による色分け)
30. 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"))
37. まとめ
• IF文
• 条件分岐をさせたい時に利用する。ifelse も使えるよ
• For文
• 繰り返し処理を行いたい場合に利用する。
• 条件が正の場合に繰り返し処理をするWhileもある。
• FizzBuzz
• IF文とFor文を使って、FizzBuzz問題を解く。
• 世界のナベアツもできるよ!
• グラフ作成
• 奥の深い世界…
• demo(graphics)で試してみよう。
• plot,barplot
• ggplot2など様々なパッケージがある。
• 統計解析
• 簡単な関数で、統計量を計算することができる。
• max,min,range,quantile,summary