Download presentation
Presentation is loading. Please wait.
1
第8章 ベクトル・行列の基礎 Rによるベクトル・行列の表現と計算法
2
8.1 スカラーとベクトル スカラー 単一の値を持つもの ベクトル 複数の値を縦もしくは横に並べたもの 例:
単一の値を持つもの ベクトル 複数の値を縦もしくは横に並べたもの 例: x < # xの値はスカラー y <- c(1,2,4) # yの値はベクトル
3
8.2 ベクトル (1) ベクトルをつくるための基本関数: c 例: veca <- c(1,2,3,4,5) 別の方法 : seq rep 例: veca2 <- 1:5 veca4 <- 10:1 veca6 <- seq(1,5,1) vecc <- rep(1,8)
4
8.2 ベクトル(続き) (2) ベクトルの基本演算 以下ではveca, vecbはベクトル veca <- 1:5 ; vecb <- seq(2,10,2) 加算 例: veca + vecb # =c(3,6,9,12,15) 減算 例: veca – vecb # =c(-1,-2,-3,-4,-5)
5
8.2.1ベクトルの基本演算(続き) 以下ではveca, vecbはベクトル veca <- 1:5 ; vecb <- seq(2,10,2) 掛け算 例: veca * vecb # =c(2,8,18,32,50) 割算 例: veca / vecb # =c(0.5, 0.5, 0.5, 0.5, 0.5) 内積 例: veca %*% vecb # 110 = sum(veca*vecb)
6
8.2.1ベクトルの基本演算(続き) 以下ではveca, vecbはベクトル veca <- 1:5 ; vecb <- seq(2,10,2) スカラー倍 例: veca*5 # = c(5,10,15,20,25) サイズが一致しないベクトル同士の足し算 例: veca+c(2,4) # = c(3,6,5,8,7) 警告はでるが1+2,2+4,3+2,4+4,5+2と計算 掛け算の場合も同様
7
8.2 ベクトル(続き) (3) ベクトルの要素を取り出す veca <- 11:20 一個の値の取り出し veca[2] で2番目の要素 12 が取り出せる 複数の値の取り出し 例: veca[3:7] # = 13:17 例: veca[c(2,4,6,8)] # = c(12,14,16,18)
8
8.3 行列 行列 縦横にデータの値が並べられたもの 例:n人の人がそれぞれp個の変数の値を持つ ⇒ n x pの行列 行列を作るための関数 matrix, cbind, rbindなど 例: matrix(1:12,nrow=3,ncol=4) matrix(1:12,3,4) matrix(1:12,nrow=3) matrix(1:12,ncol=4) 列方向優先の割り当て 1 4 7 10 2 5 8 11 3 6 9 12
9
8.3 行列(続き) 行方向優先の割り当て方法 matrix(1:12,nrow=3,ncol=4,byrow=TRUE) 1 2 3 4
5 6 7 8 9 10 11 12
10
8.3 行列(続き) 以下ではveca, vecbはベクトル veca <- 1:5 ; vecb <- seq(2,10,2) 複数のベクトルを並べて行列を作る * 列ベクトルを横に追加 cbind(veca,vecb) * 行ベクトルを縦に追加 rbind(veca,vecb) 1 2 4 3 6 8 5 10 1 2 3 4 5 6 8 10
11
8.3 行列(続き) 行列の行や列に名前をつける 行に名前をつける: rownames 列に名前をつける: colnames
例: mata <- matrix(1:6,nrow=2,ncol=3) rownames(mata) <- c(“row1”,”row2”) colnames(mata) <- c(“col1”,”col2”,”col3”) col1 col2 col3 row1 1 3 5 row2 2 4 6
12
8.3 行列(続き) 行列の四則演算 例: mata <- matrix(1:6,nrow=2,ncol=3) matb <- matrix(3:8,nrow=2,ncol=3) 足し算: mata + matb 引き算: mata – matb 掛け算: mata * matb 割り算: mata / matb 1 3 5 2 4 6 3 5 7 4 6 8 4 8 12 6 10 14 -2 mata - matb = mata + matb =
13
8.3 行列(続き) 1 3 5 2 4 6 mata = 転置の関数: t 例: t(matb) 行列の積 例: t(matb) %*% mata mata %*% t(matb) 3 5 7 4 6 8 matb = t(matb)= 3 4 5 6 7 8 3*1+4*2= 11 25 39 17 61 23 53 83 t(matb) %*% mata =
14
8.3 行列(続き) 特別な行列 正方行列 行の数と列の数が等しい (2) 対角行列 非対角要素がすべて0 diag(c(1,2,3))
4 7 2 5 8 3 6 9 特別な行列 正方行列 行の数と列の数が等しい (2) 対角行列 非対角要素がすべて0 diag(c(1,2,3)) (3) 単位行列 対角要素がすべて1の対角行列 diag(3) 対角要素 1 2 3 1
15
8.3 行列(続き) matd[2,] matd = matd[,2] matd[2,4] 行列の要素を取り出す 1 6 11 16 21
7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 matd[2,] matd = matd[,2] matd[2,4]
16
8.3 行列(続き) 行列の演算 (1) 行列式 det (2) 逆行列 solve 固有値と固有ベクトル eigen
ただし、逆行列が存在する場合に限る そうでないとエラーになる 固有値と固有ベクトル eigen 得られるのはlist型のオブジェクト($valuesと$vectorsでそれぞれ固有値と固有ベクトルを得られる)
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.