Membuat Matrix pada R
posted to R on 16 March 2017
Pada R dikenal beberapa data objects salah satunya ya matrix, matrix merupakan array 2d yang terdiri dari tipe data yang sama (mis. semua numerik atau semua teks). Untuk membuat matrix dapat dilakukan dengan beberapa cara :
- Menggunakan perintah
matrix(), dimana langsung membagivectordalam baris dan kolom. - Perintah
rbind()perintah ini akan menggabungkan beberapa item kedalam baris, selain digunakan untukvectorperintah ini juga dapat digunakan untuk menggabungkan antarmatrix - Lalu perintah
cbind()yang mirip denganrbind()namun digunakan untuk kolom
Perintah matrix() akan berasumsi bahwa vector akan dibagi secara tepat, jika tidak maka perlu menambahkan item NA.
> data = 1:10
> data
[1] 1 2 3 4 5 6 7 8 9 10
> matrix(data, ncol = 3)
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 1
[4,] 4 8 2
Warning message:
In matrix(data, ncol = 3) :
data length [10] is not a sub-multiple or multiple of the number of rows [4]
> matrix(data, ncol = 5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
> matrix(data, ncol = 5, byrow = TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
Dari perintah diatas dengan menambahkan byrow = TRUE maka perintah matrix() akan membagi vector berdasar baris, secara default pembagian berdasar kolom. Jika pembagian kita tidak tepat maka akan muncul peringatan seperti perintah kedua diatas, dimana isi matrix akan mengulang dari awal karena itulah perlu menambahkan item NA.
Menggunakan perintah rbind() dan cbind() maka item akan digabungkan berdasar baris atau kolom
> d1 = 1:4 ; d2 = 5:8 ; d3 = 9:12
> d1 ; d2 ; d3
[1] 1 2 3 4
[1] 5 6 7 8
[1] 9 10 11 12
> rbind(d1, d2, d3)
[,1] [,2] [,3] [,4]
d1 1 2 3 4
d2 5 6 7 8
d3 9 10 11 12
> cbind(d1, d2, d3)
d1 d2 d3
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
Perintah tersebut akan menggunakan nama vector sebagai nama baris atau kolom. Untuk menambahkan baris atau kolom kedalam matrix, harus dipastikan bahwa dimensinya sama
> mat = cbind(d1, d2, d3)
> mat
d1 d2 d3
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
> cbind(mat, d1)
d1 d2 d3 d1
[1,] 1 5 9 1
[2,] 2 6 10 2
[3,] 3 7 11 3
[4,] 4 8 12 4
Semoga bermanfaat …