64 Views

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

  1. untuk baris
  2. untuk kolom
  1. Data frame
  2. matrix
  1. vector,
  2. list,
  3. array
lapply lapply(X, FUN) untuk semua elemen
  1. List,
  2. vector
  3. data frame
list
sapply sappy(X FUN) untuk semua elemen
  1. List,
  2. vector
  3. data frame
  1. vector
  2. matrix

 

 

Leave a Reply

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

+ 39 = 40