More Related Content Similar to Rで学ぶデータマイニングI 第8章〜第13章 Similar to Rで学ぶデータマイニングI 第8章〜第13章 (20) More from Prunus 1350 (12) Rで学ぶデータマイニングI 第8章〜第13章2. 自己紹介
• ぷるうぬす
• 職業:SASエンジニア
• 確率・統計、機械学習、数学とか勉強中
• 「はじめてのパターン認識」読書会を主催
• Twitter : @Prunus1350
• prunusはラテン語で「桜」という意味
• 気軽に「ぷるさん」って呼ぶといいですよ。
5. Rで学ぶデータマイニング
• 第1章 Rのインストール
• 第2章 Rの起動
• 第3章 Rの終了
• 第4章 簡単な計算方法
• 第5章 R用エディタと本文の記載方法について
• 第6章 パッケージの呼び出しとインストール
• 第7章 関数の使用方法と定義方法
飛ばします!!
@doradora09 さんの資料を見よう!
9. 8.1 比較演算子・論理演算子
• 使用例
> x <- 2
> x <= 3 # 「xが3以下」か
[1] TRUE
> (0 < x) & (x < 1) # 「xが0より大きい」かつ「xが1より小さい」か
[1] FALSE
11. 8.1 比較演算子・論理演算子
• ベクトルのような複数の値が入った変数を比較するときに && や || を
使うと、先頭の値のみを比較した結果しか返ってこないので要注意。
> x <- c(T, F, T); y <- c(F, T, T) ; z <- c(T, T, T)
> x && y # 先頭の値しか比較されない
[1] FALSE
> x && z # 先頭の値しか比較されない
[1] TRUE
> x & y # 要素同士が比較される
[1] FALSE FALSE FALSE
24. 9.2 ベクトル用の関数
• Rには値どうしの大小比較や論理演算を行うための演算子が用意され
ています。
関数 意味
sum() 総和
mean() 平均
var() 不偏分散
median() 中央値
cor() 相関係数
max() 最大値
min() 最小値
prod() 総積
cumsum() 累積和
sd() 標準偏差
関数 意味
sort() 昇順整列
rev() 要素を逆順
pmax() 並列最大値
pmin() 並列最小値
range() 範囲
match() 引数のマッチング
diff() 前進差分
rank() 整列した各要素の順位
order() 整列した各要素の元の位置
27. 9.3 ベクトル要素の取り出し
• ベクトルの要素には頭から順に 1 , 2, 3 … と番号が振られており、その
番号を指定することで、特定の要素を取り出すことができます。
> x <- c(4, 5, 6)
> x[3] # ベクトルxの3番目の要素を取り出す
[1] 6
> x[x>=5] # ベクトルxの要素のうち、値が5以上の要素を取り出す
[1] 5 6
32. 10.1 論理型ベクトル
• 論理値(TRUE, FALSE)を要素とするベクトルを論理型ベクトルと呼
びます。
> c(T, F, T)
[1] TRUE FALSE TRUE
> c(T, F, T) | c(T, F, F) # or
[1] TRUE FALSE TRUE
> !c(T, F, T) # not
[1] FALSE TRUE FALSE
> xor(c(T, F, T), c(T, F, F)) # xor(排他的論理和)
[1] FALSE FALSE TRUE
35. 10.2 文字型ベクトル
• 関数 paste( ) で文字どうしを結合することができます。
> paste(“May I”, “help you ?”)
[1] “May I help you ?”
37. 10.3 因子型ベクトル
• 関数 factor( ) を使用することで、カテゴリーを要素とした因子型ベク
トルを作成することができます。
> x <- rep(c(“S”, “M”, “L”), 3)
> (fc <- factor(x)) # 要素をグループ化
[1] S M L S M L S M L
Levels: L M S
> levels(fc) # グループ化されているか確認
[1] “L” “M” “S”
38. 10.3 因子型ベクトル
• 明示的に要素の順序を指定するときには、関数 factor( ) の引数levelsに
順序を指定します。
> x <- rep(c(“S”, “M”, “L”), 3)
> (fc <- factor(x, levels = c(“S”, “M”, “L”)))
[1] S M L S M L S M L
Levels: S M L
39. 10.3 因子型ベクトル
• 説明文
> x <- rep(c(“S”, “M”, “L”), 3)
> fc <- orderd(x, levels = c(“S”, “M”, “L”))
> str(fc) # オブジェクトの要約値を表示
Ord.factor w/ 3 levels: “S” < “M” < “L” : 1 2 3 1 2 3 1 2 3
44. 11.1 行列の作成
• Rでは下記の手順で行列を作成します。
• 行列作成の例
> matrix(1:4, nrow = 2, ncol = 2)
[,1] [,2]
[1,] 1 3
[2,] 2 4
1. 行列の要素をベクトルで用意する
2. 関数 matrix(ベクトル, 行数, 列数) でベクトルから行列に変換する
45. 11.1 行列の作成
• 関数 matrix( ) の引数byrowをTrueにした方が、入力と作成される行列の
見た目が同じになるのでお勧めです。
> matrix(c(1, 2,
3, 4), nrow = 2, byrow = T)
[,1] [,2]
[1,] 1 2
[2,] 3 4
48. 11.2 行列の計算
• Rには行列操作を行う関数が多数用意されています。
コマンド 機能
chol(X) 正値対称行列Xのコレスキー分解を行う
det(X) 行列Xの行列式を求める
diag(3) 3×3の単位行列を作成する
eigen(X) 行列Xの固有値と固有ベクトルを求める
ginv(X) 行列Xのムーア・ペンローズ型一般化逆行列を求める
(library(MASS)を読み込む必要あり)
matrix(0,nrow=2,ncol=3) 2行3列のゼロ行列を作成する
qr(X) 行列XのQR分解を行う
solve(X) 行列Xの逆行列を求める
svd(X) 行列Xの特異値分解を行う
t(X) 行列Xを転置する
49. 11.2 行列の計算
• 関数 t( ) を使った行列転置の例
> (A <- matrix(1:4, 2, 2))
[,1] [,2]
[1,] 1 3
[2,] 2 4
> t(A)
[,1] [,2]
[1,] 1 2
[2,] 3 4
51. 11.3 行列要素の取り出し
• 行は上から順に1, 2, 3… と、列は左から順に1, 2, 3… と番号が振られて
おり、その番号を指定することで特定の要素を取り出すことができま
す。
> (A <- matrix(5:8, 2, 2))
[,1] [,2]
[1,] 5 7
[2,] 6 8
> A[1, 2] # 行列A の 1行 2列目 の要素を取り出す
[1] 7
> A[1, ] # 行列A の 1行目 の要素を取り出す
[1] 5 7
53. 12 欠損値 NA
• Rには「欠測・何もない」ということを表す NA が用意されています。
> (x <- c(1, 2, NA, 4, 5))
[1] 1 2 NA 4 5
> x == NA # これではどの要素が NA であるか調べることができない
[1] NA NA NA NA NA
54. 12 欠損値 NA
• NA値の検査を行う関数として、関数 is.na( ) があります。
> x <- c(1, 2, NA, 4, 5)
> is.na(x)
[1] FALSE FALSE TRUE FALSE FALSE
55. 12 欠損値 NA
• 例えば関数 sum などでは、引数ベクトルの中に1つでも NA が含まれる
と結果がうまく返ってきません。
> x <- c(1, 2, NA, 4, 5)
> sum(x)
[1] NA
> (y <- x[!is.na(x)]) # NA 以外のものを y に代入
[1] 1 2 4 5
> sum(y)
[1] 12