Function apply(), lapply(), sapply(), tapply()
Function apply(), lapply(), sapply(), tapply() – Merupakan function yang sangat berguna sekali ketika kita bekerja dengan operasi yang bersifat looping.
Tulisan ini bertujuan untuk memperkenalkan kumpulan fungsi apply() yang merupakan fungsi yang paling dasar dari semua kumpulan fungsi pengganti looping. Selain itu ada fungsi: sapply(), lapply() dan tapply().
apply()
apply() input argumen berupa data frame atau matrix sebagai masukan dan memberikan keluaran dalam bentuk vektor, list atau array apply(). Fungsi ini ada 3 argumen input.
apply(X, MARGIN, FUN) Here: -x: an array or matrix -MARGIN: take a value or range between 1 and 2 to define where to apply the function: -MARGIN=1`: the manipulation is performed on rows -MARGIN=2`: the manipulation is performed on columns -MARGIN=c(1,2)` the manipulation is performed on rows and columns -FUN: tells which function to apply. Built functions like mean, median, sum, min, max and even user-defined functions can be applied>
Misalkan kita akan menjumlah per kolom atas sebuah matrix berikut
> m1 <- matrix(C<-(1:10),nrow=2, ncol=10) > m1 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 3 5 7 9 1 3 5 7 9 [2,] 2 4 6 8 10 2 4 6 8 10
Kita menghitung sum per kolom, maka option nya adalah 2
apply(m1, 2, function (x) {sum(x)})
hasilnya
[1] 3 7 11 15 19 3 7 11 15 19
Misalkan kita akan menghitung mean dari setiap baris
apply(m1,1, function(x) {mean(x)})
hasilnya
[1] 5 6
Bagaimana dengan input berupa vector atau list?
lapply()
Fungsi lapply() berguna untuk melakukan operasi list dan mengembalikan output dengan panjang yang sama dari input aslinya. lapply() mengambil list, vektor atau data frame sebagai masukan.
lapply(X, FUN) Arguments: -X: A vector or an object -FUN: Function applied to each element of x
Contoh penggunaan lapply
KOTA = list("SEMARANG","KLATEN","PATI") KOTA kota = lapply(KOTA, function (x) tolower(x)) kota
kita perjelas lagi ketika argumen input berupa vector
KOTA = c("SEMARANG","KLATEN","PATI") KOTA kota = lapply(KOTA, function (x) tolower(x)) kota
kalian bisa melihat lapply akan menghasilkan return berupa list
sapply()
fungsi sapply() melakukan pekerjaan yang sama seperti fungsi lapply() tetapi mengembalikan vektor.
kota = lapply(KOTA, function (x) tolower(x)) kota2 = sapply(KOTA, function (x) tolower(x))
hasil
> kota [[1]] [1] "semarang" [[2]] [1] "klaten" [[3]] [1] "pati" > kota2 SEMARANG KLATEN PATI "semarang" "klaten" "pati"
Agar lebih mudah memahami, saya rangkumkan dalam bentuk tabel
fungsi | argumen | Implementasi | Input | Output |
---|---|---|---|---|
apply | apply(x, MARGIN, FUN) | bisa dipilih sesuai opsi
|
|
|
lapply | lapply(X, FUN) | untuk semua elemen |
|
list |
sapply | sappy(X FUN) | untuk semua elemen |
|
|