Dosen Pengampu : Prof. Dr. Suhartono,M.Kom.
Lembaga : UIN Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Matriks adalah sekumpulan bilangan yang disusun berdasarkan baris dan kolom, serta ditempatkan di dalam tanda kurung. Nah, tanda kurungnya ini bisa berupa kurung biasa “( )” atau kurung siku “[ ]”, ya. Suatu matriks diberi nama dengan huruf kapital, seperti A, B, C, dan seterusnya.
Oh iya, kamu tau kan bedanya baris dan kolom? Baris itu susunannya horizontal atau ke samping, sedangkan kolom susunannya vertikal atau dari atas ke bawah. 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.
Untuk membuat matriks kita dapat menggunakan fungsi 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")
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 “‘
Kita dapat melakukan tranpose (merotasi matriks sehingga kolom menjadi baris dan sebaliknya) menggunakan fungsi t(). Berikut adalah contoh penerapannya:
row1 row2 row3 row4 row5
col1 5 6 7 8 9
col2 2 4 5 9 8
col3 7 3 4 8 7
Selain melalui pembentukan sejumlah objek vektor, kita juga dapat membuat matriks menggunakan fungsi matrix(). Secara sederhana fungsi tersebut dapat dituliskan sebagai berikut:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
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. “‘
Sama dengan vektor, subset juga dapat dilakukan pada matriks. Bedanya subset dilakukan berdasarkan baris dan kolom p. • Memilih baris/kolom berdasarkan pengindeksan positif 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
• Pilih berdasarkan nama baris/kolom
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
• Kecualikan baris/kolom dengan pengindeksan negatif
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
• Pilihan dengan logik
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
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.
Berikut adalah contoh operasi matematika sederhana pada matriks:
mengalihkan 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.322 1.000 2.807
row2 2.585 2.000 1.585
row3 2.807 2.322 2.000
row4 3.000 3.170 3.000
row5 3.170 3.000 2.807
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.667 4.333 5.333 8.333 8.000
Rata-rata tiap kolom
colMeans(my_data)
col1 col2 col3
7.0 5.6 5.8
Kita juga dapat melakukan perhitungan statistika lainnya menggunakan fungsi 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
untuk mengetahui fungsi (FUN) apa saja yang dapat diterapkan pada fungsi apply() jalankan sintaks bantuan berikut:
help(apply)
Berikut adalah contoh penerapannya:
Rata-rata pada tiap baris
apply(my_data, 1, mean)
row1 row2 row3 row4 row5
4.667 4.333 5.333 8.333 8.000
Median pada tiap kolom
apply(my_data, 2, median)
col1 col2 col3
7 5 7
Perhitungan lainnya tidak akan dibahas pada chapter ini. Operasi matriks lebih lengkap selanjutnya akan dibahas pada chapter selanjutnya.