Dalam bahasa pemrograman R, matriks adalah struktur data dua dimensi yang terdiri dari elemen-elemen yang sama jenisnya, seperti angka atau karakter. Matriks dalam R dapat digunakan untuk menyimpan dan mengelola data yang disusun dalam baris dan kolom.
Untuk membuat matriks di R, kita dapat menggunakan fungsi
matrix(). Fungsi ini mengambil argumen seperti vektor data,
jumlah baris, jumlah kolom, dan parameter opsional lainnya. Misalnya,
dengan perintah
matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3), kita dapat
membuat matriks 2x3 dengan elemen-elemen dari vektor [1, 2, 3, 4, 5,
6].
R juga menyediakan operasi dan fungsi yang berguna untuk manipulasi
matriks. Misalnya, kita dapat mengakses elemen-elemen matriks dengan
menggunakan indeks baris dan kolom, seperti
matriks[baris, kolom]. Kita juga dapat melakukan operasi
matematika pada matriks, seperti penjumlahan, pengurangan, perkalian,
dan pembagian, baik antara dua matriks maupun dengan skalar.
Selain itu, R menyediakan fungsi-fungsi bawaan yang berguna untuk
memanipulasi matriks. Beberapa contohnya adalah dim() untuk
mendapatkan dimensi matriks, rownames() dan
colnames() untuk mendapatkan atau mengatur nama baris dan
kolom, cbind() dan rbind() untuk menggabungkan
matriks secara kolom atau baris, dan banyak lagi.
Matriks dalam R juga dapat digunakan bersama dengan paket-paket lain
yang dikhususkan untuk analisis data, seperti paket
matrixStats untuk operasi statistik pada matriks besar,
atau paket matrixcalc untuk kalkulasi matriks.
Dengan menggunakan matriks dalam R, kita dapat memanipulasi, menyimpan, dan menganalisis data secara efisien. Matriks memberikan alat yang kuat untuk bekerja dengan data dalam format yang terstruktur, dan kemampuan R dalam memanipulasi matriks memungkinkan kita untuk melakukan berbagai operasi dan analisis data dengan mudah dan fleksibel.
matrix(c(5, 6, 4, 1, 8, 4), nrow = 2,
ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 5 6 4
## [2,] 1 8 4
matrix
## function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
## {
## if (is.object(data) || !is.atomic(data))
## data <- as.vector(data)
## .Internal(matrix(data, nrow, ncol, byrow, dimnames, missing(nrow),
## missing(ncol)))
## }
## <bytecode: 0x000001f31be074b8>
## <environment: namespace:base>
matrix(4,2,2)
## [,1] [,2]
## [1,] 4 4
## [2,] 4 4
matrix
## function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
## {
## if (is.object(data) || !is.atomic(data))
## data <- as.vector(data)
## .Internal(matrix(data, nrow, ncol, byrow, dimnames, missing(nrow),
## missing(ncol)))
## }
## <bytecode: 0x000001f31be074b8>
## <environment: namespace:base>
R1 = matrix(c(4,-2,3,5), nrow=2,ncol=2)
R1
## [,1] [,2]
## [1,] 4 3
## [2,] -2 5
R2 = matrix(c(0,6,3,1), nrow=2,ncol=2)
R2
## [,1] [,2]
## [1,] 0 3
## [2,] 6 1
sum = R1 + R2
sum
## [,1] [,2]
## [1,] 4 6
## [2,] 4 6
difference = R1 - R2
difference
## [,1] [,2]
## [1,] 4 0
## [2,] -8 4
product = R1*R2
product
## [,1] [,2]
## [1,] 0 9
## [2,] -12 5
result = R1/R2
result
## [,1] [,2]
## [1,] Inf 1
## [2,] -0.3333333 5
R1 <- matrix(c(10,20,20,40),
ncol = 2,
byrow = TRUE)
library(Matrix)
rankMatrix(R1)[1]
## [1] 1
diag(c(22,-14,56))
## [,1] [,2] [,3]
## [1,] 22 0 0
## [2,] 0 -14 0
## [3,] 0 0 56
R1 <- matrix(c(3,9,7,2),
ncol = 2,
byrow = TRUE)
det(R1)
## [1] -57
R1 <- matrix(c(19,11,2,33),
ncol = 2,
byrow = TRUE)
solve(R1)
## [,1] [,2]
## [1,] 0.054545455 -0.01818182
## [2,] -0.003305785 0.03140496
R1 <- matrix(c(19,11,2,33),
ncol = 2,
byrow = TRUE)
t(R1)
## [,1] [,2]
## [1,] 19 2
## [2,] 11 33
R1 <- matrix(c(19,11,2,33),
ncol = 2,
byrow = TRUE)
eigen(R1)$values
## [1] 34.42615 17.57385
eigen(R1)$vectors
## [,1] [,2]
## [1,] -0.5805852 -0.9916999
## [2,] -0.8141995 0.1285739
R1 <- matrix(c(19,11,2,33),
ncol = 2,
byrow = TRUE)
R1^2
## [,1] [,2]
## [1,] 361 121
## [2,] 4 1089
R1 <- matrix(c(2,7,1,5), ncol = 2, byrow = TRUE)
R2 <- matrix(c(3,8,4,0),ncol = 2,byrow = TRUE)
R1 %o% R2
## , , 1, 1
##
## [,1] [,2]
## [1,] 6 21
## [2,] 3 15
##
## , , 2, 1
##
## [,1] [,2]
## [1,] 8 28
## [2,] 4 20
##
## , , 1, 2
##
## [,1] [,2]
## [1,] 16 56
## [2,] 8 40
##
## , , 2, 2
##
## [,1] [,2]
## [1,] 0 0
## [2,] 0 0
outer(R1, R2, FUN = "*")
## , , 1, 1
##
## [,1] [,2]
## [1,] 6 21
## [2,] 3 15
##
## , , 2, 1
##
## [,1] [,2]
## [1,] 8 28
## [2,] 4 20
##
## , , 1, 2
##
## [,1] [,2]
## [1,] 16 56
## [2,] 8 40
##
## , , 2, 2
##
## [,1] [,2]
## [1,] 0 0
## [2,] 0 0
R1 = matrix(c(0,3,5,1),nrow=2)
R2 = matrix(c(2,4,1,6),nrow=2)
crossprod(R1, R2)
## [,1] [,2]
## [1,] 12 18
## [2,] 14 11
tcrossprod(R1,R2)
## [,1] [,2]
## [1,] 5 30
## [2,] 7 18
R1 = matrix(c(0,3,5,1),nrow=2)
4*R1
## [,1] [,2]
## [1,] 0 20
## [2,] 12 4
R1 = matrix(c(0,3,5,1),nrow=2)
R2 = matrix(c(1,-2,4,6),nrow=2)
R1%*%R2
## [,1] [,2]
## [1,] -10 30
## [2,] 1 18
R1 = matrix(c(0,3,5,1),nrow=2)
R2 = matrix(c(1,-2,4,6),nrow=2)
R1%x%R2
## [,1] [,2] [,3] [,4]
## [1,] 0 0 5 20
## [2,] 0 0 -10 30
## [3,] 3 12 1 4
## [4,] -6 18 -2 6
s<-c(1:3)
t<-c(12:15)
sum<-s+t
## Warning in s + t: longer object length is not a multiple of shorter object
## length
sum
## [1] 13 15 17 16
s<-c(1:3)
t<-c(12:14)
product<-s*t
product
## [1] 12 26 42