Menguasai Fungsi apply, sapply, lapply dan tapply pada Bahasa R

fungsi apply, sapply, lapply, tapply bahasa R

Fungsi apply, sapply, lapply dan tapply adalah fungsi-fungsi penting dalam bahasa pemrograman R. Keempatnya memungkinkan kita untuk menerapkan operasi pada setiap elemen atau kelompok elemen dalam objek vektor, matriks maupun dataframe. Pada tutorial ini, kita akan membahas secara rinci keempat fungsi ini dan bagaimana penerapannya dalam berbagai skenario.

apply

Fungsi apply memungkinkan Anda untuk menerapkan fungsi ke setiap baris atau kolom dalam matriks atau ke setiap elemen dalam vektor. Format umum penggunaannya adalah apply(objek, margin, fungsi), dimana:

  • objek: objek yang ingin kita aplikasikan fungsi kepadanya (misalnya, matriks, vektor).
  • margin: argumen untuk menentukan dimensi yang akan diterapkan pada fungsi (1 untuk baris, 2 untuk kolom atau c(1, 2) untuk aplikasi ke setiap elemen).
  • fungsi: fungsi yang akan terapkan pada setiap baris atau kolom (dapat berupa fungsi built-in atau fungsi buatan pengguna).

Di bawah ini disajikan beberapa penerapan fungsi apply untuk berbagai kondisi.

apply untuk setiap elemen

Pada contoh pertama, fungsi apply digunakan untuk mecari nilai akar kuadrat dari setiap elemen dataframe. Karena operasi akan dilakukan untuk setiap elemen, maka argumen dari parameter MARGIN kita isi dengan nilai c(1, 2). Fungsi apply akan mengembalikan nilai hasil akar kuadrat dalam bentuk tipe data matrix.

Contoh 1

Contoh ke-2 di bawah ini, kita menggunakan fungsi apply untuk membuat matriks berisi label grade berdasarkan kriteria tertentu. Karena fungsi yang digunakan lebih rumit, maka dapat ditulis dalam fungsi tersendiri dan kemudian dikirimkan sebagai argumen pada fungsi apply. Pada bagian ini, operasi juga dilakukan untuk setiap elemen, sehingga parameter MARGIN diatur dengan nilai c(1, 2).

Contoh 2

apply untuk baris dan kolom

Selain penerapannya untuk operasi elemen per elemen, fungsi apply juga dapat digunakan untuk melakukan operasi menurut baris dan kolom. Dengan mengatur nilai MARGIN=1, akan membuat operasi dilakukan baris-per-baris. Sementara nilai MARGIN=2 akan membuat operasi dilakukan kolom-per-kolom.

Pada contoh di bawah ini, variabel mean.per.baris menampung output dari fungsi apply yang dilakukan menurut baris. Berdasarkan output yang diperoleh, dapat dilihat bahwa variabel ini berisi nilai rata-rata (Nilai.1, Nilai.2 dan Nilai.3) untuk setiap barisnya. Begitu pula dengan variabel mean.per.kolom yang akan menyimpan output nilai rata-rata pada setiap kolomnya.

Contoh 3

Misal dari data sebelumnya, akan ditentukan nilai final yang dihitung dengan komposisi 50% Nilai.1 + 30% Nilai.2 + 20% Nilai.3. Kita dapat membuat kolom baru untuk menyimpan nilai final tersebut menggunakan fungsi apply. Karena ingin mencari nilai final untuk setiap baris, maka kita atur parameter MARGIN=1.

Contoh 4

Misalkan ingin dilihat juga 3 nilai tertinggi pada masing-masing kolom. Kita dapat menggunakan fungsi apply dan menerapkannya pada kolom-per-kolom. Sebagai contoh, output yang diperoleh untuk kolom Nilai.1 adalah 85, 82, dan 80, kolom Nilai.2 adalah 88, 87, dan 86, san seterusnya sampai dengan kolom Skor.Final.

Contoh 5

sapply

Fungsi sapply bisa dikatakan sebagai bentuk lebih sederhana dari fungsi apply. Di dalam fungsi sapply kita tidak perlu menentukan nilai parameter MARGIN karena secara umum sapply akan bekerja pada setiap elemen. Output yang dihasilkan oleh fungsi sapply juga sama seperti apply yaitu dengan tipe data matrix atau vector.

Pada contoh ke-6 berikut ini, disajikan sintaks penggunaan sapply untuk mendapatkan nilai akar kuadrat dari sekumpulan data. Contoh ini juga setara dengan sintaks pada contoh 1 yang menggunakan fungsi apply. Dengan cara yang sama, silahkan coba gunakan fungsi sapply untuk menghasilkan output seperti pada contoh 2.

Contoh 6

Contoh lainnya, fungsi sapply juga dapat digunakan untuk membuat kolom baru pada dataframe berdasarkan nilai kolom lainnya. Misalkan status kelulusan ditentukan dari skor final dengan ketentuan nilai > 80 dinyatakan lulus; nilai antara 70 – 80 lulus bersyarat; dan kurang dari sama dengan 60 dinyatakan tidak lulus.

Contoh 7

lapply

Fungsi lapply memiliki cara kerja yang sama dengan sapply. Perbedaan utamanya yaitu hanya pada tipe data dari output yang dihasilkan. Fungsi lapply akan menghasilkan output dengan tipe list.

Pada contoh berikut, ditampilkan penggunaan fungsi lapply untuk menghitung nilai rata-rata dan standar deviasi dari kolom-kolom numerik pada objek data.

Contoh 8

Sebagai contoh terakhir, berikut adalah sintaks untuk mencari 3 nilai tertinggi pada masing-masing kolom numerik menggunakan lapply. Kita akan menggunakan fungsi get.bigthree yang sudah dibuat sebelumnya pada contoh 5. Output yang ditampilkan juga menunjukkan bagaimana perbedaan tipe data output saat menggunakan lapply dibandingkan dengan sapply pada Contoh 5.

Contoh 9

tapply

Selain apply, sapply dan tapply terdapat satu fungsi lagi yang dapat digunakan untuk pemrosesan data pada bahasa R yaitu tapply. Fungsi ini memiliki cara kerja yang agak berbeda dari ketiga fungsi sebelumnya karena fungsi diterapkan menurut kelompok atau faktor tertentu di dalam data.

Pada contoh berikut, fungsi tapply diterapkan pada kolom Skor.Final untuk menghitung nilai rata-ratanya menurut kelompok status.

Contoh 10

Contoh selanjutnya, kita dapat menerapkan fungsi yang lebih kompleks dan mengembalikan nilai yang kompleks pula. Misalkan untuk menghitung beberapa ringkasan statistik dari data menurut kelompok status.

Contoh 11

Pada output di atas dapat kita lihat fungsi tapply memberikan output dalam bentuk list dalam list. Kita dapat mengakses setiap nilai dengan menggunakan simbol $. Contohnya untuk melihat nilai median dari kelompok LULUS dapat menggunakan sintaks summary.by.group$LULUS$med dan akan menghasilkan nilai 83.7.

Dokumentasi

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Isi