2.4 Vapply Fungsi ini merupakan bentuk lain dari sapply(). Bedanya secara kecepatan proses fungsi ini lebih cepat dari sapply(). Hal yang menarik dari fungsi ini kita dapat menambahkan argumen FUN.VALUE

## membuat list
x <- sapply(3:10, seq)
x # print
## [[1]]
## [1] 1 2 3
## 
## [[2]]
## [1] 1 2 3 4
## 
## [[3]]
## [1] 1 2 3 4 5
## 
## [[4]]
## [1] 1 2 3 4 5 6
## 
## [[5]]
## [1] 1 2 3 4 5 6 7
## 
## [[6]]
## [1] 1 2 3 4 5 6 7 8
## 
## [[7]]
## [1] 1 2 3 4 5 6 7 8 9
## 
## [[8]]
##  [1]  1  2  3  4  5  6  7  8  9 10

2.5 Tapply Fungsi ini sangat berguna jika pembaca ingin menghitung suatu nilai misalnya mean berdasarkan grup data atau factor.

## membuat tabel frekuensi
groups <- as.factor(rbinom(50, n = 4, prob = 0.2))

tapply(groups, groups, length)
##  5 14 
##  1  3
## membuat tabel kontingensi
# menghitung jumlah breaks berdasarkan faktor jenis wool
# dan tensi level
tapply(X=warpbreaks$breaks, INDEX=warpbreaks[,-2], FUN=sum)
##       tension
## breaks  L  M  H
##     10 NA NA 10
##     12 NA 12 NA
##     13 NA NA 13
##     14 14 NA NA
##     15 NA NA 45
##     16 NA 16 16
##     17 NA 17 17
##     18 NA 36 18
##     19 19 19 NA
##     20 20 NA 20
##     21 NA 42 42
##     24 NA NA 48
##     25 25 NA NA
##     26 52 26 26
##     27 27 NA NA
##     28 NA 28 56
##     29 58 58 NA
##     30 30 30 NA
##     31 31 NA NA
##     35 NA 35 NA
##     36 NA 36 36
##     39 NA 78 NA
##     41 41 NA NA
##     42 NA 42 NA
##     43 NA NA 43
##     44 44 NA NA
##     51 51 NA NA
##     52 52 NA NA
##     54 54 NA NA
##     67 67 NA NA
##     70 70 NA NA
# menghitung mean panjang gigi babi hutan berdasarkan
# jenis suplemen dan dosisnya
tapply(ToothGrowth$len, ToothGrowth[,-2], mean)
##       dose
## len     0.5    1    2
##   4.2   4.2   NA   NA
##   5.2   5.2   NA   NA
##   5.8   5.8   NA   NA
##   6.4   6.4   NA   NA
##   7     7.0   NA   NA
##   7.3   7.3   NA   NA
##   8.2   8.2   NA   NA
##   9.4   9.4   NA   NA
##   9.7   9.7   NA   NA
##   10   10.0   NA   NA
##   11.2 11.2   NA   NA
##   11.5 11.5   NA   NA
##   13.6   NA 13.6   NA
##   14.5 14.5 14.5   NA
##   15.2 15.2 15.2   NA
##   15.5   NA 15.5   NA
##   16.5 16.5 16.5   NA
##   17.3   NA 17.3   NA
##   17.6 17.6   NA   NA
##   18.5   NA   NA 18.5
##   18.8   NA 18.8   NA
##   19.7   NA 19.7   NA
##   20     NA 20.0   NA
##   21.2   NA 21.2   NA
##   21.5 21.5   NA 21.5
##   22.4   NA   NA 22.4
##   22.5   NA 22.5   NA
##   23     NA   NA 23.0
##   23.3   NA 23.3 23.3
##   23.6   NA 23.6 23.6
##   24.5   NA   NA 24.5
##   24.8   NA   NA 24.8
##   25.2   NA 25.2   NA
##   25.5   NA   NA 25.5
##   25.8   NA 25.8   NA
##   26.4   NA 26.4 26.4
##   26.7   NA   NA 26.7
##   27.3   NA 27.3 27.3
##   29.4   NA   NA 29.4
##   29.5   NA   NA 29.5
##   30.9   NA   NA 30.9
##   32.5   NA   NA 32.5
##   33.9   NA   NA 33.9
# menghitung mpg minimum berdasarkan jumlah silinder pada mobil
tapply(mtcars$mpg, mtcars$cyl, min, simplify=FALSE)
## $`4`
## [1] 21.4
## 
## $`6`
## [1] 17.8
## 
## $`8`
## [1] 10.4