R - Array
Array adalah objek data R yang dapat menyimpan data lebih dari dua dimensi. Misalnya - Jika kita membuat array dimensi (2, 3, 4) maka itu membuat 4 matriks persegi panjang masing-masing dengan 2 baris dan 3 kolom. Array hanya dapat menyimpan tipe data.
Sebuah array dibuat menggunakan array()fungsi. Dibutuhkan vektor sebagai masukan dan menggunakan nilai dalamdim parameter untuk membuat array.
Contoh
Contoh berikut membuat larik dua matriks 3x3 masing-masing dengan 3 baris dan 3 kolom.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2))
print(result)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
, , 1
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
Penamaan Kolom dan Baris
Kita bisa memberi nama pada baris, kolom dan matriks dalam larik dengan menggunakan dimnames parameter.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,
matrix.names))
print(result)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
, , Matrix1
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
, , Matrix2
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
Mengakses Elemen Array
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c("COL1","COL2","COL3")
row.names <- c("ROW1","ROW2","ROW3")
matrix.names <- c("Matrix1","Matrix2")
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,
column.names, matrix.names))
# Print the third row of the second matrix of the array.
print(result[3,,2])
# Print the element in the 1st row and 3rd column of the 1st matrix.
print(result[1,3,1])
# Print the 2nd Matrix.
print(result[,,2])
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
COL1 COL2 COL3
3 12 15
[1] 13
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
Memanipulasi Elemen Array
Karena array terdiri dari matriks dalam beberapa dimensi, operasi pada elemen array dilakukan dengan mengakses elemen matriks.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
array1 <- array(c(vector1,vector2),dim = c(3,3,2))
# Create two vectors of different lengths.
vector3 <- c(9,1,0)
vector4 <- c(6,0,11,3,14,1,2,6,9)
array2 <- array(c(vector1,vector2),dim = c(3,3,2))
# create matrices from these arrays.
matrix1 <- array1[,,2]
matrix2 <- array2[,,2]
# Add the matrices.
result <- matrix1+matrix2
print(result)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
[,1] [,2] [,3]
[1,] 10 20 26
[2,] 18 22 28
[3,] 6 24 30
Perhitungan Di Seluruh Elemen Array
Kita bisa melakukan perhitungan di seluruh elemen dalam sebuah array menggunakan apply() fungsi.
Sintaksis
apply(x, margin, fun)
Berikut ini adalah deskripsi parameter yang digunakan -
x adalah sebuah larik.
margin adalah nama kumpulan data yang digunakan.
fun adalah fungsi yang akan diterapkan di seluruh elemen array.
Contoh
Kami menggunakan fungsi apply () di bawah ini untuk menghitung jumlah elemen dalam baris larik di semua matriks.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
new.array <- array(c(vector1,vector2),dim = c(3,3,2))
print(new.array)
# Use apply to calculate the sum of the rows across all the matrices.
result <- apply(new.array, c(1), sum)
print(result)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
, , 1
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
[1] 56 68 60