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