Matriks |
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.
1. Membuat Matriks
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") 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 "’
Kita dapat melakukan tranpose (merotasi matriks sehingga kolom menjadi baris dan sebaliknya) menggunakan fungsi t(). Berikut adalah contoh penerapannya:
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
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)
## [,1] ## [1,] NA
Catatan :
data: vektor data opsional
nrow, ncol: jumlah baris dan kolom yang diinginkan, masingmasing.
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
Untuk mengetahui dimensi dari suatu matriks, kita dapat menggunakan fungsi 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
Jika ingin memperoleh ringkasan terkait dimensi matriks kita juga dapat mengunakan fungsi dim() untuk mengetahui jumlah baris dan kolom matriks. Berikut adalah contoh penerapannya:
dim(my_data) # jumlah baris dan kolom
## [1] 5 3
2. Subset Pada Matriks
Sama dengan vektor, subset juga dapat dilakukan pada matriks. Bedanya subset dilakukan berdasarkan baris dan kolom pada matriks.baris atau kolom dapat diseleksi menggunakan format data[row, col]. Cara seleksi ini sama dengan vektor, bedanya kita harus menetukan baris dan kolom dari data yang akan kita pilih. Berikut adalah contoh penerapannya:
- Memilih baris/kolom berdasarkan pengindeksan positif
# 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
- Kecualikan baris/kolom dengan pengindeksan negatif
# 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
Referensi |