Kursus
Array adalah struktur data yang dapat menampung data multi-dimensi. Di R, array adalah objek yang dapat menampung data berdimensi dua atau lebih. Sebagai contoh, dalam matriks bujur sangkar dapat berisi dua baris dan dua kolom serta dimensi dapat bernilai lima. Array hanya dapat menyimpan nilai dengan jenis tipe data yang serupa. Data dapat berdimensi lebih dari satu, di mana terdapat baris dan kolom serta dimensi dengan panjang tertentu.
Pembuatan Array
Fungsi array() akan membuat sebuah array yang menerima sebuah vektor, yaitu angka-angka, dan dimensi ('dim') sebagai argumen.
Mari lihat contoh di bawah di mana dua vektor bernama 'array1' dan array2' dibuat.
vector1 = c (5, 10, 15,20)
vector2 = c (25, 30, 35, 40, 45, 50,55,60)
Anda dapat menggunakan dua vektor di atas sebagai masukan ke sebuah array dengan dimensi 4 * 4, dan dua matriks atau data berdimensi dibuat.
final = array (c (array1, array2),dim =c(4,4,3))
print (final)
Keluaran dari kode di atas adalah sebagai berikut:
, , 1
[,1] [,2] [,3] [,4]
[1,] 5 25 45 5
[2,] 10 30 50 10
[3,] 15 35 55 15
[4,] 20 40 60 20
, , 2
[,1] [,2] [,3] [,4]
[1,] 25 45 5 25
[2,] 30 50 10 30
[3,] 35 55 15 35
[4,] 40 60 20 40
, , 3
[,1] [,2] [,3] [,4]
[1,] 45 5 25 45
[2,] 50 10 30 50
[3,] 55 15 35 55
[4,] 60 20 40 60
Mari ganti nama array menjadi "Arr1" dan "Arr2" dengan menggunakan "matrix.names". Selain itu, nama baris diubah menjadi ("row1","row2") dan nama kolom akan diubah menjadi ("column1","column2","column3") masing-masing. Dimensi matriks adalah 2 baris dan 3 kolom.
array1 = c (9 , 18 )
array2 = c (27,36)
r.names = c ("column1","column2","column3")
c.names = c ("row1","row2")
m.names = c ("Arr1", "Arr2")
final = array (c (array1,array2), dim=c (2,3,2), dimnames=list (c.names, r.names, m.names))
print(final)
Keluaran dari kode di atas adalah sebagai berikut, di mana terdapat dua baris dan tiga kolom. Selain itu, nilai pada kolom akan berulang kembali ketika sudah habis:
, , Arr1
column1 column2 column3
row1 9 27 9
row2 18 36 18
, , Arr2
column1 column2 column3
row1 27 9 27
row2 36 18 36
Pengindeksan dalam Array
Sebuah array terdiri dari elemen-elemen secara multi-dimensi di mana setiap elemen dapat diakses untuk operasi. Elemen dapat diindeks menggunakan '[]' di mana dalam array mirip matriks terdiri dari baris dan kolom yang dapat diindeks dengan: mat[row, column]
Ambil contoh di bawah ini di mana array berisi masukan vektor dari 1 hingga 9. Hanya ada tiga baris dan kolom di mana nilai dari 1 hingga 9 disertakan. 'c.names)' adalah nama kolom baru yang memiliki vektor ('c1', 'c2', 'c3') dan 'r.names' adalah nama baris baru ('r1', 'r2', 'r3') yang juga berupa vektor.
a1= c (1,2,3,4)
a2= c (5,6,7,8,9)
r.names = c ("c1","c2","c3")
c.names = c ("r1","r2","r3")
m.names = c ("first")
arr = array (c (a1,a2), dim=c (3,3,1), dimnames=list (c.names, r.names, m.names))
print(arr)
, , first
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
Keluaran dari kode di atas adalah sebagai berikut:
, , first
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
Anda dapat melihat matriks dari 1 hingga 9 dihasilkan dengan bentuk dimensi 3 3 (baris kolom), dan nama baris serta kolom telah diubah.
Mari lihat bagaimana elemen-elemen dalam array dapat diekstrak dengan contoh-contoh berikut.
- Mari ekstrak angka '7' dari array 'arr' di atas.
arr[1,3,1]
7
Keluaran untuk kode di atas adalah 7. Di dalam 'arr[1,3,1]' baris 1 dengan kolom 3 dan 1 adalah array 'arr' pertama yang diekstrak.
- Untuk mengakses 1, 'arr[1,1,1]' baris 1 dengan kolom 1 dan 1 adalah array 'arr' pertama yang diekstrak.
arr[1,1,1]
1
Keluaran untuk kode di atas adalah 1.
- Untuk mengakses beberapa nilai sekaligus, Anda perlu menentukan rentang yang diinginkan.
arr[1:2,1:2,1]
| c1 | c2 | |
|---|---|---|
| r1 | 1 | 4 |
| r2 | 2 | 5 |
Kode di atas memberikan keluaran seperti di bawah ini di mana nilai berisi 2 baris, 2 kolom dan 1 adalah array 'arr' pertama yang diekstrak:
c1 c2
r1 1 4
r2 2 5
- Anda dapat mengakses seluruh array 'arr' dengan sintaks berikut di mana 'arr[ , ,1]' menunjukkan untuk menyertakan semua baris dan kolom masing-masing dipisahkan oleh koma, yang ditunjukkan oleh spasi. Angka 1 menunjukkan array 'arr' yang akan diekstrak.
arr[ , ,1]
| c1 | c2 | c3 | |
|---|---|---|---|
| r1 | 1 | 4 | 7 |
| r2 | 2 | 5 | 8 |
| r3 | 3 | 6 | 9 |
Kode di atas memberikan keluaran seperti di bawah ini di mana semua elemen ada:
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
- Anda dapat mengambil seluruh baris kedua dengan kode berikut di mana arr[2, ,1] mengambil baris kedua dengan spasi, dan 1 adalah 'arr' yang diekstrak.
arr[2,,1]
- c1
- 2
- c2
- 5
- c3
- 8
Kode di atas memberikan keluaran seperti di bawah ini dan juga mencetak c1,c2,c3.
c1 2
c2 5
c3 8
- Anda dapat mengambil seluruh kolom kedua dengan kode berikut di mana arr[,2,1] spasi dengan 2 adalah kolom kedua, dan 1 adalah 'arr' yang diekstrak.
mat[ ,2,1]
- r1
- 4
- r2
- 5
- r3
- 6
Kode di atas memberikan keluaran seperti di bawah ini dan juga mencetak r1,r2,r3.
r1 4
r2 5
r3 6
Pembuatan dan Penjumlahan Matriks
Mari membuat matriks bernama mat1 dan mat2 dari 'arr[ , ,1]' di mana seluruh baris dan kolom dari 'arr' disalin.
mat1 = arr[,,1]
mat2 = arr[,,1]
c1 c2 c3
r1 2 8 14
r2 4 10 16
r3 6 12 18
Jumlahkan dua matriks 'mat1' dan 'mat2' dan simpan hasilnya di final. Keluaran juga dicetak.
final <- mat1+mat2
print(final)
Keluaran di bawah menunjukkan bahwa setiap baris dan kolom dari mat1 dan mat2 dijumlahkan satu sama lain.
c1 c2 c3
r1 2 8 14
r2 4 10 16
r3 6 12 18
apply()
'apply()' adalah salah satu paket R yang memiliki beberapa fungsi yang membantu menulis kode dengan lebih mudah dan efisien. Anda akan melihat contoh di bawah di mana fungsi ini dapat digunakan untuk menghitung jumlah dari dua array yang berbeda.
Sintaks apply() adalah:apply(x, margin, function)
Argumen di atas menunjukkan bahwa:
x: Sebuah array atau data dua dimensi seperti matriks.
margin: Menunjukkan fungsi yang akan diterapkan sebagai nilai margin yaitu c(1) untuk baris, c(2) untuk kolom, dan c(1,2) untuk keduanya (baris dan kolom).
function: Menunjukkan fungsi bawaan R atau fungsi buatan pengguna yang akan diterapkan pada data yang diberikan.
Mari buat vektor bernama 'array1' dengan panjang tiga dan 'array2' dengan panjang enam dengan kode berikut.
array1 = c(5,10,15)
array2 = c(15,20,25,30,35,40)
Anda dapat melihat di bawah ini di mana 'array()' menerima dua vektor bernama 'array1' dan 'array2' dengan dimensi 3 baris, 3 kolom, dan 2 matriks dibuat serta disimpan ke 'my. Array'.
my.Array <- array(c(array1,array2),dim = c(3,3,2))
print(my.Array)
, , 1
[,1] [,2] [,3]
[1,] 5 15 30
[2,] 10 20 35
[3,] 15 25 40
, , 2
[,1] [,2] [,3]
[1,] 5 15 30
[2,] 10 20 35
[3,] 15 25 40
Kode di atas memberikan keluaran berikut, di mana dua matriks dibuat dengan 3 3 (baris kolom).
, , 1
[,1] [,2] [,3]
[1,] 5 15 30
[2,] 10 20 35
[3,] 15 25 40
, , 2
[,1] [,2] [,3]
[1,] 5 15 30
[2,] 10 20 35
[3,] 15 25 40
'apply()' digunakan di bawah ini untuk menghitung jumlah dari dua matriks secara per kolom.
final <- apply(my.Array, c(2), sum)
print(final)
[1] 60 120 210
Anda dapat melihat di atas di mana c(2) untuk margin digunakan sehingga elemen-elemen matriks dalam 'my. Array' dijumlahkan per kolom untuk mendapatkan keluaran berikut.
60 120 210
Terakhir, 'apply()' digunakan di bawah ini untuk menghitung jumlah dari dua matriks secara per baris.
final <- apply(my.Array, c(1), sum)
print(final)
[1] 100 130 160
Anda dapat melihat di atas di mana c(1) untuk margin digunakan sehingga elemen-elemen matriks dalam 'my. Array' dijumlahkan per baris untuk mendapatkan keluaran berikut.
100 130 160
Selamat
Selamat, Anda telah mencapai akhir dari tutorial ini!
Anda telah mempelajari tentang Array di R beserta cara pembuatannya, pengindeksan dalam array dengan contoh, juga pembuatan dan penjumlahan matriks serta fungsi apply().
Jika Anda ingin mempelajari lebih lanjut tentang R, ikuti kursus Introduction to R dari DataCamp.
