Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Fakultas : Sains dan Teknologi
Matriks seperti Excel sheet yang berisi banyak baris dan kolom (kumpulan bebrapa vektor). Matriks digunakan untuk menggabungkan vektor dengan tipe yang sama, yang bisa berupa numerik, karakter, atau logis. Matriks digunakan untuk menyimpan tabel data dalam R. Baris-baris matriks pada umumnya adalah individu / pengamatan dan kolom adalah variabel.
cbind()
atau rbind()
. Berikut adalah contoh sintaks untuk membuat matriks.# membuat vektor numerik
col1 <- c(5, 6, 7, 8, 9)
col2 <- c(2, 4, 5, 9, 8)
col3 <- c(7, 3, 4, 8, 7)
# menggabungkan vektor berdasarkan kolom
my_data <- cbind(col1, col2, col3)
my_data
## col1 col2 col3
## [1,] 5 2 7
## [2,] 6 4 3
## [3,] 7 5 4
## [4,] 8 9 8
## [5,] 9 8 7
# Mengubah atau menambahkan nama baris
rownames(my_data) <- c("row1", "row2",
"row3", "row4",
"row5")
my_data
## col1 col2 col3
## row1 5 2 7
## row2 6 4 3
## row3 7 5 4
## row4 8 9 8
## row5 9 8 7
Catatan:
cbind():
menggabungkan objek R berdasarkan kolom
rbind():
menggabungkan objek R berdasarkan baris
rownames():
mengambil atau menetapkan nama-nama baris dari objek seperti-matriks
colnames():
mengambil atau menetapkan nama-nama kolom dari objek seperti-matriks
t(my_data)
## row1 row2 row3 row4 row5
## col1 5 6 7 8 9
## col2 2 4 5 9 8
## col3 7 3 4 8 7
matrix()
. Secara sederhana fungsi tersebut dapat dituliskan sebagai berikut:matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
## [,1]
## [1,] NA
Catatan:
data:
vektor data opsional
nrow, 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.
Dalam kode R
di bawah ini, data input memiliki panjang 6. Kita ingin membuat matriks dengan dua kolom. Kita tidak perlu menentukan jumlah baris (di sini nrow = 3
). 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
ncol()
untuk mengetahui jumlah kolom matriks dan nrow()
untuk mengetahui jumlah baris pada matriks. Berikut adalah contoh penerapannya:# mengetahui jumlah kolom
ncol(my_data)
## [1] 3
# mengetahui jumlah baris
nrow(my_data)
## [1] 5
dim()
untuk mengetahui jumlah baris dan kolom matriks. Berikut adalah contoh penerapannya:dim(my_data) # jumlah baris dan kolom
## [1] 5 3
baris atau kolom dapat diseleksi menggunakan format data[row, col]
. Cara selesi ini sama dengan vektor, bedanya kita harus menetukan baris dan kolom dari data yang akan kita pilih. Berikut adalah contoh penerapannya:
# Pilih baris ke-2
my_data[2,]
## col1 col2 col3
## 6 4 3
# Pilih baris 2 sampai 4
my_data[2:4,]
## col1 col2 col3
## row2 6 4 3
## row3 7 5 4
## row4 8 9 8
# Pilih baris 2 dan 4
my_data[c(2,4),]
## col1 col2 col3
## row2 6 4 3
## row4 8 9 8
# Pilih baris 2 dan kolom 3
my_data[2, 3]
## [1] 3
Berikut adalah contoh subset berdasarkan nama baris atau kolom.
# Pilih baris 1 dan kolom 3
my_data["row1","col3"]
## [1] 7
# Pilih baris 1 sampai 4 dan kolom 3
baris <- c("row1","row2","row3")
my_data[baris, "col3"]
## row1 row2 row3
## 7 3 4
Sama seperti vektor 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 5 2
## row4 8 9
## row5 9 8
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
## row1 5 2 7
## row3 7 5 4
## row4 8 9 8
## row5 9 8 7
Kita juga dapat melakukan operasi matematika pada matriks. Pada operasi matematika pada matriks proses yang terjadi bisa lebih kompleks dibanding pada vektor, dimana kita dapat melakukan operasi untuk memperoleh gambaran data pada tiap kolom atau baris.
# mengalikan masing-masing elemen matriks dengan 2
my_data*2
## col1 col2 col3
## row1 10 4 14
## row2 12 8 6
## row3 14 10 8
## row4 16 18 16
## row5 18 16 14
# memperoleh nilai log basis 2 pada masing-masing elemen matriks
log2(my_data)
## col1 col2 col3
## row1 2.321928 1.000000 2.807355
## row2 2.584963 2.000000 1.584963
## row3 2.807355 2.321928 2.000000
## row4 3.000000 3.169925 3.000000
## row5 3.169925 3.000000 2.807355
Seperti yang telah penulis jelaskan sebelumnya, kita juga dapat melakukan operasi matematika untuk memperoleh hasil penjumlahan elemen pada tiap baris atau kolom dengan menggunakan fungsi rowSums()
untuk baris dan colSums()
untuk kolom.
# Total pada tiap kolom
colSums(my_data)
## col1 col2 col3
## 35 28 29
# Total pada tiap baris
rowSums(my_data)
## row1 row2 row3 row4 row5
## 14 13 16 25 24
Jika kita tertarik untuk mencari nilai rata-rata tiap baris arau kolom kita juga dapat menggunakan fungsi rowMeans()
atau colMeans()
. Berikut adalah contoh penerapannya:
# Rata-rata tiap baris
rowMeans(my_data)
## row1 row2 row3 row4 row5
## 4.666667 4.333333 5.333333 8.333333 8.000000
# Rata-rata tiap kolom
colMeans(my_data)
## col1 col2 col3
## 7.0 5.6 5.8
apply()
. Berikut adalah format sederhananya:apply(x, MARGIN, FUN)
Catatan:
x
: data matriks
MARGIN
: Nilai yang dapat digunakan adalah 1 (untuk operasi pada baris) dan 2 (untuk operasi pada kolom)
FUN
: fungsi yang diterapkan pada baris atau kolom
apply()
jalankan sintaks bantuan berikut:help(apply)
# Rata-rata pada tiap baris
apply(my_data, 1, mean)
## row1 row2 row3 row4 row5
## 4.666667 4.333333 5.333333 8.333333 8.000000
# Median pada tiap kolom
apply(my_data, 2, median)
## col1 col2 col3
## 7 5 7
Bloomfield, V.A. 2014. Using R for Numerical Analysis in Science and Engineering. CRC Press
Primartha, R. 2018. Belajar Machine Learning Teori dan Praktik. Penerbit Informatika : Bandung.
Rosadi,D. 2016. Analisis Statistika dengan R. Gadjah Mada University Press: Yogyakarta.
STHDA. Easy R Programming Basics. http://www.sthda.com/english/wiki/easy-r-programming-basics
The R Core Team. 2018. R: A Language and Environment for Statistical Computing. R Manuals.
Venables, W.N. Smith D.M. and R Core Team. 2018. An Introduction to R. R Manuals.