R !!!行列 {{outline}} ---- !!行列の作成 matrix() matrix(データ, nrow=行数, ncol=列数) {{pre > matrix(1:6, nrow=2, ncol=3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > matrix(1:6, nrow=3, ncol=2) [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 }} !!見出しをつける colnames(), rownames() colnames(data) <- c("koku", "suu", "eigo") !!要素の指定 [行番号, 列番号] {{pre > mx <- matrix(1:6, nrow=3, ncol=2) > mx [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 > mx[3, 1] [1] 3 > mx[2, 2] [1] 5 }} *行列のいずれかを省略すると、すべてを指定したことになる。 {{pre > mx [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 > mx[1, ] [1] 1 4 > mx[ , 2] [1] 4 5 6 }} !!行列の演算 {{pre > mx1 <- matrix(1:4, nrow=2, ncol=2) > mx2 <- matrix(5:8, nrow=2, ncol=2) > mx1 [,1] [,2] [1,] 1 3 [2,] 2 4 > mx2 [,1] [,2] [1,] 5 7 [2,] 6 8 > mx1 + mx2 [,1] [,2] [1,] 6 10 [2,] 8 12 > mx2 - mx1 [,1] [,2] [1,] 4 4 [2,] 4 4 > mx1 * mx2 [,1] [,2] [1,] 5 21 [2,] 12 32 > mx1 %*% mx2 [,1] [,2] [1,] 23 31 [2,] 34 46 }} *積に注意 !!行列の計算 rowSums() 各行の総和 colSums() 各列の総和 rowMeans() colMeans() {{pre > rowSums(mx1) [1] 4 6 > colSums(mx1) [1] 3 7 > rowMeans(mx1) [1] 2 3 > colMeans(mx1) [1] 1.5 3.5 }} !!行列の結合 rbind(), cbind() {{pre > rbind(mx1, mx2) [,1] [,2] [1,] 1 3 [2,] 2 4 [3,] 5 7 [4,] 6 8 > cbind(mx1, mx2) [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8 }}