Lembaga : UIN Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
R
. baris-baris Matriks disebut sebagai Individu/Pengamatan, sedangkan kolom adalah Variable.cbind()
atau rbind()
untuk membuat matriks. Contoh sebagai berikut.# membuat vektor numerik
col1 <- c(1, 3, 4, 5, 7)
col2 <- c(2, 4, 5, 9, 8)
col3 <- c(2, 3, 1, 8, 2)
# menggabungkan vektor berdasarkan kolom
my_data <- cbind(col1, col2, col3)
my_data
## col1 col2 col3
## [1,] 1 2 2
## [2,] 3 4 3
## [3,] 4 5 1
## [4,] 5 9 8
## [5,] 7 8 2
# Mengubah atau menambahkan nama baris
rownames(my_data) <- c("row1", "row2",
"row3", "row4",
"row5")
my_data
## col1 col2 col3
## row1 1 2 2
## row2 3 4 3
## row3 4 5 1
## row4 5 9 8
## row5 7 8 2
Note :
cbind()
: menggabungkan objekR
berdasarkan kolomrbind()
: menggabungkan objekR
berdasarkan barisrownames()
: mengambil atau menetapkan nama-nama baris dari objek seperti-matrikscolnames()
: mengambil atau menetapkan nama-nama kolom dari objek seperti-matriks
t()
. contoh penerapan sebagai berikut.t(my_data)
## row1 row2 row3 row4 row5
## col1 1 3 4 5 7
## col2 2 4 5 9 8
## col3 2 3 1 8 2
matrix()
. Selain melalui pembentukan sejumlah objek vektor. berikut adalah contohnya.matrix(data = NA, nrow = 3, ncol = 4, byrow = FALSE,
dimnames = NULL)
## [,1] [,2] [,3] [,4]
## [1,] NA NA NA NA
## [2,] NA NA NA NA
## [3,] NA NA NA NA
Note :
data
: vektor data, Bersifat opsionalnrow
, ncol: jumlah baris dan kolom yang diinginkan, masing-masing.byrow
: nilai logis. Jika FALSE (default) matriks diisi oleh kolom, jika tidak, matriks diisi oleh baris.dimnames
: Daftar dua vektor yang memberikan nama baris dan kolom masing-masing.
R
akan menyimpulkan ini secara otomatis. Matriks diisi kolom demi kolom saat argumen byrow = FALSE
. Jika kita ingin mengisi matriks dengan baris, gunakan byrow = TRUE
. Berikut adalah contoh pembuatan matriks menggunakan fungsi matrix().data <- matrix(
data = c(1,2,3, 11,12,13),
nrow = 2, byrow = TRUE,
dimnames = list(c("row1", "row2"),
c("C.1", "C.2", "C.3"))
)
data
## C.1 C.2 C.3
## row1 1 2 3
## row2 11 12 13
dim()
untuk mengetahui jumlah baris dan kolom matriks. Berikut adalah contoh penerapannya.dim(my_data) # jumlah baris dan kolom
## [1] 5 3
Memilih baris/kolom berdasarkan pengindeksan positif
# Pilih baris ke-2
my_data[2,]
## col1 col2 col3
## 3 4 3
# Pilih baris 1 sampai 4
my_data[1:4,]
## col1 col2 col3
## row1 1 2 2
## row2 3 4 3
## row3 4 5 1
## row4 5 9 8
# Pilih baris 2 dan 4
my_data[c(2,4),]
## col1 col2 col3
## row2 3 4 3
## row4 5 9 8
# Pilih baris 2 dan kolom 3
my_data[2, 3]
## [1] 3
Kecualikan baris/kolom dengan pengindeksan negatif
* pengecualian data dapat dilakukan di matriks menggunakan pengindeksan negatif. Berikut cara melakukannya:
# Kecualikan baris 2 dan 3 serta kolom 3
my_data[-c(2,3), -3]
## col1 col2
## row1 1 2
## row4 5 9
## row5 7 8
Pilihan dengan logika
* Dalam kode R
di bawah ini, misalkan kita ingin hanya menyimpan baris di mana col3> = 4:
col3 <- my_data[, "col3"]
my_data[col3 >= 4, ]
## col1 col2 col3
## 5 9 8
# mengalikan masing-masing elemen matriks dengan 2
my_data*2
## col1 col2 col3
## row1 2 4 4
## row2 6 8 6
## row3 8 10 2
## row4 10 18 16
## row5 14 16 4
# memperoleh nilai log basis 2 pada masing-masing elemen matriks
log2(my_data)
## col1 col2 col3
## row1 0.000000 1.000000 1.000000
## row2 1.584963 2.000000 1.584963
## row3 2.000000 2.321928 0.000000
## row4 2.321928 3.169925 3.000000
## row5 2.807355 3.000000 1.000000
# Total pada tiap kolom
colSums(my_data)
## col1 col2 col3
## 20 28 16
# Total pada tiap baris
rowSums(my_data)
## row1 row2 row3 row4 row5
## 5 10 10 22 17
# Rata-rata tiap baris
rowMeans(my_data)
## row1 row2 row3 row4 row5
## 1.666667 3.333333 3.333333 7.333333 5.666667
# Rata-rata tiap kolom
colMeans(my_data)
## col1 col2 col3
## 4.0 5.6 3.2
apply()
. Berikut adalah format sederhananya:apply(x, MARGIN, FUN)
Note :
x
: data matriks
MARGIN
: Nilai yang dapat digunakan adalah1
(untuk operasi pada baris) dan2
(untuk operasi pada kolom)FUN
: fungsi yang diterapkan pada baris atau kolom
FUN
) apa saja yang dapat diterapkan pada fungsi apply()
jalankan sintaks bantuan berikut:help(apply)
## starting httpd help server ... done
# Rata-rata pada tiap kolom
apply(my_data, 2, median)
## col1 col2 col3
## 4 5 2
# Catatan : `matrix(dari : sampai, brp kolom dan baris)`
A <- matrix(1:9,3)
B <- matrix(10:18,3)
C <- matrix(1:6,3)
# penjumlahan dengan skalar
A+1
## [,1] [,2] [,3]
## [1,] 2 5 8
## [2,] 3 6 9
## [3,] 4 7 10
# Penjumlahan dengan Matrix lainnya
A+B
## [,1] [,2] [,3]
## [1,] 11 17 23
## [2,] 13 19 25
## [3,] 15 21 27
# Perkalian dengan Matrix lainnya
A%*%B
## [,1] [,2] [,3]
## [1,] 138 174 210
## [2,] 171 216 261
## [3,] 204 258 312