Pengenalan tidyverse : Wrangling dengan dplyr

Materi ini akan membahas pengenalan package tidyverse yang merupakan kumpulan dari beberapa package, di antaranya

Sebagai tahap awal, tentu saja seluruh peserta Praktikum Data diharapkan sudah menginstall R dan RStudio

Installing the Package

Pada penggunaan pertama, silahkan install terlebih dulu package yang akan digunakan dengan cara menuliskan code berikut:

install.packages("tidyverse")

selanjutnya load package yang telah diinstall:

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.0      ✔ purrr   0.3.5 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()

Untuk melihat isi dari package, kita dapat menggunakan perintah help() atau dengan menuliskan ?? yang diikuti dengan keyword yang akan dicari.

??tidyverse

Import Data

Package tidyverse menggunakan tibble sebagai pengganti data.frame. Import data dengan format .csv yang dilakukan menggunakan fungsi read.csv() akan menyimpan data sebagai data.frame sedangkan fungsi read_csv() dari package readr akan menyimpannya sebagai tibble. Untuk data berukuran besar, package readr dinilai mampu mengimpor data dengan lebih cepat.

tictoc::tic()
cars1<-utils::read.csv("https://raw.githubusercontent.com/plotly/datasets/master/mtcars.csv")
class(cars1)
## [1] "data.frame"
tictoc::toc()
## 0.58 sec elapsed
tictoc::tic()
cars2<-readr::read_csv("https://raw.githubusercontent.com/plotly/datasets/master/mtcars.csv")
## Rows: 32 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): manufacturer
## dbl (11): mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
class(cars2)
## [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"
tictoc::toc()
## 1.02 sec elapsed
cars2
## # A tibble: 32 × 12
##    manufactu…¹   mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
##    <chr>       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Mazda RX4    21       6  160    110  3.9   2.62  16.5     0     1     4     4
##  2 Mazda RX4 …  21       6  160    110  3.9   2.88  17.0     0     1     4     4
##  3 Datsun 710   22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
##  4 Hornet 4 D…  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
##  5 Hornet Spo…  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
##  6 Valiant      18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
##  7 Duster 360   14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
##  8 Merc 240D    24.4     4  147.    62  3.69  3.19  20       1     0     4     2
##  9 Merc 230     22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
## 10 Merc 280     19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
## # … with 22 more rows, and abbreviated variable name ¹​manufacturer

Menurut Hidayatuloh (2019), beberapa kelebihan tibble dibandingkan data.frame diantaranya adalah ketika menampilkan data, tibble tidak menampilkan semua baris dan kolom. Jika ada lebih dari 10 baris data, maka hanya akan ada 10 baris pertama yang ditampilkan dan beberapa variabel sesuai dengan lebar console R Anda.

# Contoh mengimpor data yang berukuran besar
system.time(accident<-read_csv("https://vincentarelbundock.github.io/Rdatasets/csv/DAAG/nassCDS.csv"))
## New names:
## Rows: 26217 Columns: 16
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (8): dvcat, dead, airbag, seatbelt, sex, abcat, occRole, caseid dbl (8): ...1,
## weight, frontal, ageOFocc, yearacc, yearVeh, deploy, injSeverity
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
##    user  system elapsed 
##    0.34    0.14    1.08
system.time(accident<-read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/DAAG/nassCDS.csv"))
##    user  system elapsed 
##    0.19    0.00    1.72

Perhatikan bahwa untuk mengimpor data yang sama menggunakan fungsi read.csv(), cenderung memerlukan waktu yang lebih lama, ini terlihat dari user time.

Pipes (%>%) Operator

Operator pipes (%>%) sangat populer digunakan oleh pengguna tidyverse. Fungsi ini awalnya dikembangkan pada package magrittr yang juga merupakan bagian dari package dplyr.

Digunakan data iris dari package datasets

library(datasets)
data(iris)
#iris<-tibble::as_tibble(iris)

Perhatikan contoh berikut untuk lebih memahami fungsi dari operator tersebut.

mean(iris$Sepal.Length)
## [1] 5.843333

atau

iris$Sepal.Length %>% mean()
## [1] 5.843333

Kedua fungsi di atas menghasilkan angka yang sama. Konsep tidyverse memungkinkan pengguna menggunakan operator %>% agar lebih mudah dalam memahami script karena script tersebut menunjukkan urutan fungsi yang digunakan.

Perhatikan contoh berikut ini.

x <- c(0.109, 0.359, 0.63, 0.996, 0.515, 0.142, 0.017, 0.829, 0.907)

Tanpa Operator Pipes

round(exp(diff(log(x))), 1)
## [1]  3.3  1.8  1.6  0.5  0.3  0.1 48.8  1.1

Dengan fungsi %>%, fungsi di atas dapat dituliskan sebagai berikut.

x %>% log() %>%
    diff() %>%
    exp() %>%
    round(1)
## [1]  3.3  1.8  1.6  0.5  0.3  0.1 48.8  1.1

Informasi lebih lengkap tentang operator pipes dapat pula dilihat pada Willems (2017) atau silahkan klik di sini.

Introduction to dplyr Package

Seperti dijelaskan sebelumnya, tidyverse merupakan kumpulan dari beberapa package, salah satunya adalah package dplyr. Berikut adalah beberapa contoh penggunaan package dplyr.

Fungsi summarise()

Pertama, contohnya penggunaan fungsi summarise() untuk meringkas data.

#menghitung rata-rata Sepal length setiap species
iris %>% group_by(Species) %>% summarise(mean=mean(Sepal.Length), .groups='drop')
## # A tibble: 3 × 2
##   Species     mean
##   <fct>      <dbl>
## 1 setosa      5.01
## 2 versicolor  5.94
## 3 virginica   6.59

Fungsi arrange()

Menggunakan fungsi arrange() untuk mengurutkan data.

#mengurutkan berdasarkan peubah Sepal.Length dari nilai terkecil
iris %>% arrange(Sepal.Length)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            4.3         3.0          1.1         0.1     setosa
## 2            4.4         2.9          1.4         0.2     setosa
## 3            4.4         3.0          1.3         0.2     setosa
## 4            4.4         3.2          1.3         0.2     setosa
## 5            4.5         2.3          1.3         0.3     setosa
## 6            4.6         3.1          1.5         0.2     setosa
## 7            4.6         3.4          1.4         0.3     setosa
## 8            4.6         3.6          1.0         0.2     setosa
## 9            4.6         3.2          1.4         0.2     setosa
## 10           4.7         3.2          1.3         0.2     setosa
## 11           4.7         3.2          1.6         0.2     setosa
## 12           4.8         3.4          1.6         0.2     setosa
## 13           4.8         3.0          1.4         0.1     setosa
## 14           4.8         3.4          1.9         0.2     setosa
## 15           4.8         3.1          1.6         0.2     setosa
## 16           4.8         3.0          1.4         0.3     setosa
## 17           4.9         3.0          1.4         0.2     setosa
## 18           4.9         3.1          1.5         0.1     setosa
## 19           4.9         3.1          1.5         0.2     setosa
## 20           4.9         3.6          1.4         0.1     setosa
## 21           4.9         2.4          3.3         1.0 versicolor
## 22           4.9         2.5          4.5         1.7  virginica
## 23           5.0         3.6          1.4         0.2     setosa
## 24           5.0         3.4          1.5         0.2     setosa
## 25           5.0         3.0          1.6         0.2     setosa
## 26           5.0         3.4          1.6         0.4     setosa
## 27           5.0         3.2          1.2         0.2     setosa
## 28           5.0         3.5          1.3         0.3     setosa
## 29           5.0         3.5          1.6         0.6     setosa
## 30           5.0         3.3          1.4         0.2     setosa
## 31           5.0         2.0          3.5         1.0 versicolor
## 32           5.0         2.3          3.3         1.0 versicolor
## 33           5.1         3.5          1.4         0.2     setosa
## 34           5.1         3.5          1.4         0.3     setosa
## 35           5.1         3.8          1.5         0.3     setosa
## 36           5.1         3.7          1.5         0.4     setosa
## 37           5.1         3.3          1.7         0.5     setosa
## 38           5.1         3.4          1.5         0.2     setosa
## 39           5.1         3.8          1.9         0.4     setosa
## 40           5.1         3.8          1.6         0.2     setosa
## 41           5.1         2.5          3.0         1.1 versicolor
## 42           5.2         3.5          1.5         0.2     setosa
## 43           5.2         3.4          1.4         0.2     setosa
## 44           5.2         4.1          1.5         0.1     setosa
## 45           5.2         2.7          3.9         1.4 versicolor
## 46           5.3         3.7          1.5         0.2     setosa
## 47           5.4         3.9          1.7         0.4     setosa
## 48           5.4         3.7          1.5         0.2     setosa
## 49           5.4         3.9          1.3         0.4     setosa
## 50           5.4         3.4          1.7         0.2     setosa
## 51           5.4         3.4          1.5         0.4     setosa
## 52           5.4         3.0          4.5         1.5 versicolor
## 53           5.5         4.2          1.4         0.2     setosa
## 54           5.5         3.5          1.3         0.2     setosa
## 55           5.5         2.3          4.0         1.3 versicolor
## 56           5.5         2.4          3.8         1.1 versicolor
## 57           5.5         2.4          3.7         1.0 versicolor
## 58           5.5         2.5          4.0         1.3 versicolor
## 59           5.5         2.6          4.4         1.2 versicolor
## 60           5.6         2.9          3.6         1.3 versicolor
## 61           5.6         3.0          4.5         1.5 versicolor
## 62           5.6         2.5          3.9         1.1 versicolor
## 63           5.6         3.0          4.1         1.3 versicolor
## 64           5.6         2.7          4.2         1.3 versicolor
## 65           5.6         2.8          4.9         2.0  virginica
## 66           5.7         4.4          1.5         0.4     setosa
## 67           5.7         3.8          1.7         0.3     setosa
## 68           5.7         2.8          4.5         1.3 versicolor
## 69           5.7         2.6          3.5         1.0 versicolor
## 70           5.7         3.0          4.2         1.2 versicolor
## 71           5.7         2.9          4.2         1.3 versicolor
## 72           5.7         2.8          4.1         1.3 versicolor
## 73           5.7         2.5          5.0         2.0  virginica
## 74           5.8         4.0          1.2         0.2     setosa
## 75           5.8         2.7          4.1         1.0 versicolor
## 76           5.8         2.7          3.9         1.2 versicolor
## 77           5.8         2.6          4.0         1.2 versicolor
## 78           5.8         2.7          5.1         1.9  virginica
## 79           5.8         2.8          5.1         2.4  virginica
## 80           5.8         2.7          5.1         1.9  virginica
## 81           5.9         3.0          4.2         1.5 versicolor
## 82           5.9         3.2          4.8         1.8 versicolor
## 83           5.9         3.0          5.1         1.8  virginica
## 84           6.0         2.2          4.0         1.0 versicolor
## 85           6.0         2.9          4.5         1.5 versicolor
## 86           6.0         2.7          5.1         1.6 versicolor
## 87           6.0         3.4          4.5         1.6 versicolor
## 88           6.0         2.2          5.0         1.5  virginica
## 89           6.0         3.0          4.8         1.8  virginica
## 90           6.1         2.9          4.7         1.4 versicolor
## 91           6.1         2.8          4.0         1.3 versicolor
## 92           6.1         2.8          4.7         1.2 versicolor
## 93           6.1         3.0          4.6         1.4 versicolor
## 94           6.1         3.0          4.9         1.8  virginica
## 95           6.1         2.6          5.6         1.4  virginica
## 96           6.2         2.2          4.5         1.5 versicolor
## 97           6.2         2.9          4.3         1.3 versicolor
## 98           6.2         2.8          4.8         1.8  virginica
## 99           6.2         3.4          5.4         2.3  virginica
## 100          6.3         3.3          4.7         1.6 versicolor
## 101          6.3         2.5          4.9         1.5 versicolor
## 102          6.3         2.3          4.4         1.3 versicolor
## 103          6.3         3.3          6.0         2.5  virginica
## 104          6.3         2.9          5.6         1.8  virginica
## 105          6.3         2.7          4.9         1.8  virginica
## 106          6.3         2.8          5.1         1.5  virginica
## 107          6.3         3.4          5.6         2.4  virginica
## 108          6.3         2.5          5.0         1.9  virginica
## 109          6.4         3.2          4.5         1.5 versicolor
## 110          6.4         2.9          4.3         1.3 versicolor
## 111          6.4         2.7          5.3         1.9  virginica
## 112          6.4         3.2          5.3         2.3  virginica
## 113          6.4         2.8          5.6         2.1  virginica
## 114          6.4         2.8          5.6         2.2  virginica
## 115          6.4         3.1          5.5         1.8  virginica
## 116          6.5         2.8          4.6         1.5 versicolor
## 117          6.5         3.0          5.8         2.2  virginica
## 118          6.5         3.2          5.1         2.0  virginica
## 119          6.5         3.0          5.5         1.8  virginica
## 120          6.5         3.0          5.2         2.0  virginica
## 121          6.6         2.9          4.6         1.3 versicolor
## 122          6.6         3.0          4.4         1.4 versicolor
## 123          6.7         3.1          4.4         1.4 versicolor
## 124          6.7         3.0          5.0         1.7 versicolor
## 125          6.7         3.1          4.7         1.5 versicolor
## 126          6.7         2.5          5.8         1.8  virginica
## 127          6.7         3.3          5.7         2.1  virginica
## 128          6.7         3.1          5.6         2.4  virginica
## 129          6.7         3.3          5.7         2.5  virginica
## 130          6.7         3.0          5.2         2.3  virginica
## 131          6.8         2.8          4.8         1.4 versicolor
## 132          6.8         3.0          5.5         2.1  virginica
## 133          6.8         3.2          5.9         2.3  virginica
## 134          6.9         3.1          4.9         1.5 versicolor
## 135          6.9         3.2          5.7         2.3  virginica
## 136          6.9         3.1          5.4         2.1  virginica
## 137          6.9         3.1          5.1         2.3  virginica
## 138          7.0         3.2          4.7         1.4 versicolor
## 139          7.1         3.0          5.9         2.1  virginica
## 140          7.2         3.6          6.1         2.5  virginica
## 141          7.2         3.2          6.0         1.8  virginica
## 142          7.2         3.0          5.8         1.6  virginica
## 143          7.3         2.9          6.3         1.8  virginica
## 144          7.4         2.8          6.1         1.9  virginica
## 145          7.6         3.0          6.6         2.1  virginica
## 146          7.7         3.8          6.7         2.2  virginica
## 147          7.7         2.6          6.9         2.3  virginica
## 148          7.7         2.8          6.7         2.0  virginica
## 149          7.7         3.0          6.1         2.3  virginica
## 150          7.9         3.8          6.4         2.0  virginica
#mengurutkan berdasarkan peubah Sepal.Length dari nilai terbesar
iris %>% arrange(desc(Sepal.Length))
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            7.9         3.8          6.4         2.0  virginica
## 2            7.7         3.8          6.7         2.2  virginica
## 3            7.7         2.6          6.9         2.3  virginica
## 4            7.7         2.8          6.7         2.0  virginica
## 5            7.7         3.0          6.1         2.3  virginica
## 6            7.6         3.0          6.6         2.1  virginica
## 7            7.4         2.8          6.1         1.9  virginica
## 8            7.3         2.9          6.3         1.8  virginica
## 9            7.2         3.6          6.1         2.5  virginica
## 10           7.2         3.2          6.0         1.8  virginica
## 11           7.2         3.0          5.8         1.6  virginica
## 12           7.1         3.0          5.9         2.1  virginica
## 13           7.0         3.2          4.7         1.4 versicolor
## 14           6.9         3.1          4.9         1.5 versicolor
## 15           6.9         3.2          5.7         2.3  virginica
## 16           6.9         3.1          5.4         2.1  virginica
## 17           6.9         3.1          5.1         2.3  virginica
## 18           6.8         2.8          4.8         1.4 versicolor
## 19           6.8         3.0          5.5         2.1  virginica
## 20           6.8         3.2          5.9         2.3  virginica
## 21           6.7         3.1          4.4         1.4 versicolor
## 22           6.7         3.0          5.0         1.7 versicolor
## 23           6.7         3.1          4.7         1.5 versicolor
## 24           6.7         2.5          5.8         1.8  virginica
## 25           6.7         3.3          5.7         2.1  virginica
## 26           6.7         3.1          5.6         2.4  virginica
## 27           6.7         3.3          5.7         2.5  virginica
## 28           6.7         3.0          5.2         2.3  virginica
## 29           6.6         2.9          4.6         1.3 versicolor
## 30           6.6         3.0          4.4         1.4 versicolor
## 31           6.5         2.8          4.6         1.5 versicolor
## 32           6.5         3.0          5.8         2.2  virginica
## 33           6.5         3.2          5.1         2.0  virginica
## 34           6.5         3.0          5.5         1.8  virginica
## 35           6.5         3.0          5.2         2.0  virginica
## 36           6.4         3.2          4.5         1.5 versicolor
## 37           6.4         2.9          4.3         1.3 versicolor
## 38           6.4         2.7          5.3         1.9  virginica
## 39           6.4         3.2          5.3         2.3  virginica
## 40           6.4         2.8          5.6         2.1  virginica
## 41           6.4         2.8          5.6         2.2  virginica
## 42           6.4         3.1          5.5         1.8  virginica
## 43           6.3         3.3          4.7         1.6 versicolor
## 44           6.3         2.5          4.9         1.5 versicolor
## 45           6.3         2.3          4.4         1.3 versicolor
## 46           6.3         3.3          6.0         2.5  virginica
## 47           6.3         2.9          5.6         1.8  virginica
## 48           6.3         2.7          4.9         1.8  virginica
## 49           6.3         2.8          5.1         1.5  virginica
## 50           6.3         3.4          5.6         2.4  virginica
## 51           6.3         2.5          5.0         1.9  virginica
## 52           6.2         2.2          4.5         1.5 versicolor
## 53           6.2         2.9          4.3         1.3 versicolor
## 54           6.2         2.8          4.8         1.8  virginica
## 55           6.2         3.4          5.4         2.3  virginica
## 56           6.1         2.9          4.7         1.4 versicolor
## 57           6.1         2.8          4.0         1.3 versicolor
## 58           6.1         2.8          4.7         1.2 versicolor
## 59           6.1         3.0          4.6         1.4 versicolor
## 60           6.1         3.0          4.9         1.8  virginica
## 61           6.1         2.6          5.6         1.4  virginica
## 62           6.0         2.2          4.0         1.0 versicolor
## 63           6.0         2.9          4.5         1.5 versicolor
## 64           6.0         2.7          5.1         1.6 versicolor
## 65           6.0         3.4          4.5         1.6 versicolor
## 66           6.0         2.2          5.0         1.5  virginica
## 67           6.0         3.0          4.8         1.8  virginica
## 68           5.9         3.0          4.2         1.5 versicolor
## 69           5.9         3.2          4.8         1.8 versicolor
## 70           5.9         3.0          5.1         1.8  virginica
## 71           5.8         4.0          1.2         0.2     setosa
## 72           5.8         2.7          4.1         1.0 versicolor
## 73           5.8         2.7          3.9         1.2 versicolor
## 74           5.8         2.6          4.0         1.2 versicolor
## 75           5.8         2.7          5.1         1.9  virginica
## 76           5.8         2.8          5.1         2.4  virginica
## 77           5.8         2.7          5.1         1.9  virginica
## 78           5.7         4.4          1.5         0.4     setosa
## 79           5.7         3.8          1.7         0.3     setosa
## 80           5.7         2.8          4.5         1.3 versicolor
## 81           5.7         2.6          3.5         1.0 versicolor
## 82           5.7         3.0          4.2         1.2 versicolor
## 83           5.7         2.9          4.2         1.3 versicolor
## 84           5.7         2.8          4.1         1.3 versicolor
## 85           5.7         2.5          5.0         2.0  virginica
## 86           5.6         2.9          3.6         1.3 versicolor
## 87           5.6         3.0          4.5         1.5 versicolor
## 88           5.6         2.5          3.9         1.1 versicolor
## 89           5.6         3.0          4.1         1.3 versicolor
## 90           5.6         2.7          4.2         1.3 versicolor
## 91           5.6         2.8          4.9         2.0  virginica
## 92           5.5         4.2          1.4         0.2     setosa
## 93           5.5         3.5          1.3         0.2     setosa
## 94           5.5         2.3          4.0         1.3 versicolor
## 95           5.5         2.4          3.8         1.1 versicolor
## 96           5.5         2.4          3.7         1.0 versicolor
## 97           5.5         2.5          4.0         1.3 versicolor
## 98           5.5         2.6          4.4         1.2 versicolor
## 99           5.4         3.9          1.7         0.4     setosa
## 100          5.4         3.7          1.5         0.2     setosa
## 101          5.4         3.9          1.3         0.4     setosa
## 102          5.4         3.4          1.7         0.2     setosa
## 103          5.4         3.4          1.5         0.4     setosa
## 104          5.4         3.0          4.5         1.5 versicolor
## 105          5.3         3.7          1.5         0.2     setosa
## 106          5.2         3.5          1.5         0.2     setosa
## 107          5.2         3.4          1.4         0.2     setosa
## 108          5.2         4.1          1.5         0.1     setosa
## 109          5.2         2.7          3.9         1.4 versicolor
## 110          5.1         3.5          1.4         0.2     setosa
## 111          5.1         3.5          1.4         0.3     setosa
## 112          5.1         3.8          1.5         0.3     setosa
## 113          5.1         3.7          1.5         0.4     setosa
## 114          5.1         3.3          1.7         0.5     setosa
## 115          5.1         3.4          1.5         0.2     setosa
## 116          5.1         3.8          1.9         0.4     setosa
## 117          5.1         3.8          1.6         0.2     setosa
## 118          5.1         2.5          3.0         1.1 versicolor
## 119          5.0         3.6          1.4         0.2     setosa
## 120          5.0         3.4          1.5         0.2     setosa
## 121          5.0         3.0          1.6         0.2     setosa
## 122          5.0         3.4          1.6         0.4     setosa
## 123          5.0         3.2          1.2         0.2     setosa
## 124          5.0         3.5          1.3         0.3     setosa
## 125          5.0         3.5          1.6         0.6     setosa
## 126          5.0         3.3          1.4         0.2     setosa
## 127          5.0         2.0          3.5         1.0 versicolor
## 128          5.0         2.3          3.3         1.0 versicolor
## 129          4.9         3.0          1.4         0.2     setosa
## 130          4.9         3.1          1.5         0.1     setosa
## 131          4.9         3.1          1.5         0.2     setosa
## 132          4.9         3.6          1.4         0.1     setosa
## 133          4.9         2.4          3.3         1.0 versicolor
## 134          4.9         2.5          4.5         1.7  virginica
## 135          4.8         3.4          1.6         0.2     setosa
## 136          4.8         3.0          1.4         0.1     setosa
## 137          4.8         3.4          1.9         0.2     setosa
## 138          4.8         3.1          1.6         0.2     setosa
## 139          4.8         3.0          1.4         0.3     setosa
## 140          4.7         3.2          1.3         0.2     setosa
## 141          4.7         3.2          1.6         0.2     setosa
## 142          4.6         3.1          1.5         0.2     setosa
## 143          4.6         3.4          1.4         0.3     setosa
## 144          4.6         3.6          1.0         0.2     setosa
## 145          4.6         3.2          1.4         0.2     setosa
## 146          4.5         2.3          1.3         0.3     setosa
## 147          4.4         2.9          1.4         0.2     setosa
## 148          4.4         3.0          1.3         0.2     setosa
## 149          4.4         3.2          1.3         0.2     setosa
## 150          4.3         3.0          1.1         0.1     setosa

Fungsi filter()

Menggunakan fungsi filter() untuk memilih sebagian data berdasarkan nilai tertentu.

iris %>% filter(Species=="setosa")
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa
## 11          5.4         3.7          1.5         0.2  setosa
## 12          4.8         3.4          1.6         0.2  setosa
## 13          4.8         3.0          1.4         0.1  setosa
## 14          4.3         3.0          1.1         0.1  setosa
## 15          5.8         4.0          1.2         0.2  setosa
## 16          5.7         4.4          1.5         0.4  setosa
## 17          5.4         3.9          1.3         0.4  setosa
## 18          5.1         3.5          1.4         0.3  setosa
## 19          5.7         3.8          1.7         0.3  setosa
## 20          5.1         3.8          1.5         0.3  setosa
## 21          5.4         3.4          1.7         0.2  setosa
## 22          5.1         3.7          1.5         0.4  setosa
## 23          4.6         3.6          1.0         0.2  setosa
## 24          5.1         3.3          1.7         0.5  setosa
## 25          4.8         3.4          1.9         0.2  setosa
## 26          5.0         3.0          1.6         0.2  setosa
## 27          5.0         3.4          1.6         0.4  setosa
## 28          5.2         3.5          1.5         0.2  setosa
## 29          5.2         3.4          1.4         0.2  setosa
## 30          4.7         3.2          1.6         0.2  setosa
## 31          4.8         3.1          1.6         0.2  setosa
## 32          5.4         3.4          1.5         0.4  setosa
## 33          5.2         4.1          1.5         0.1  setosa
## 34          5.5         4.2          1.4         0.2  setosa
## 35          4.9         3.1          1.5         0.2  setosa
## 36          5.0         3.2          1.2         0.2  setosa
## 37          5.5         3.5          1.3         0.2  setosa
## 38          4.9         3.6          1.4         0.1  setosa
## 39          4.4         3.0          1.3         0.2  setosa
## 40          5.1         3.4          1.5         0.2  setosa
## 41          5.0         3.5          1.3         0.3  setosa
## 42          4.5         2.3          1.3         0.3  setosa
## 43          4.4         3.2          1.3         0.2  setosa
## 44          5.0         3.5          1.6         0.6  setosa
## 45          5.1         3.8          1.9         0.4  setosa
## 46          4.8         3.0          1.4         0.3  setosa
## 47          5.1         3.8          1.6         0.2  setosa
## 48          4.6         3.2          1.4         0.2  setosa
## 49          5.3         3.7          1.5         0.2  setosa
## 50          5.0         3.3          1.4         0.2  setosa

Fungsi select()

Fungsi select() dapat digunakan untuk memilih subset data berdasarkan peubah tertentu.

iris %>% select(Species,Petal.Width,Petal.Length)
##        Species Petal.Width Petal.Length
## 1       setosa         0.2          1.4
## 2       setosa         0.2          1.4
## 3       setosa         0.2          1.3
## 4       setosa         0.2          1.5
## 5       setosa         0.2          1.4
## 6       setosa         0.4          1.7
## 7       setosa         0.3          1.4
## 8       setosa         0.2          1.5
## 9       setosa         0.2          1.4
## 10      setosa         0.1          1.5
## 11      setosa         0.2          1.5
## 12      setosa         0.2          1.6
## 13      setosa         0.1          1.4
## 14      setosa         0.1          1.1
## 15      setosa         0.2          1.2
## 16      setosa         0.4          1.5
## 17      setosa         0.4          1.3
## 18      setosa         0.3          1.4
## 19      setosa         0.3          1.7
## 20      setosa         0.3          1.5
## 21      setosa         0.2          1.7
## 22      setosa         0.4          1.5
## 23      setosa         0.2          1.0
## 24      setosa         0.5          1.7
## 25      setosa         0.2          1.9
## 26      setosa         0.2          1.6
## 27      setosa         0.4          1.6
## 28      setosa         0.2          1.5
## 29      setosa         0.2          1.4
## 30      setosa         0.2          1.6
## 31      setosa         0.2          1.6
## 32      setosa         0.4          1.5
## 33      setosa         0.1          1.5
## 34      setosa         0.2          1.4
## 35      setosa         0.2          1.5
## 36      setosa         0.2          1.2
## 37      setosa         0.2          1.3
## 38      setosa         0.1          1.4
## 39      setosa         0.2          1.3
## 40      setosa         0.2          1.5
## 41      setosa         0.3          1.3
## 42      setosa         0.3          1.3
## 43      setosa         0.2          1.3
## 44      setosa         0.6          1.6
## 45      setosa         0.4          1.9
## 46      setosa         0.3          1.4
## 47      setosa         0.2          1.6
## 48      setosa         0.2          1.4
## 49      setosa         0.2          1.5
## 50      setosa         0.2          1.4
## 51  versicolor         1.4          4.7
## 52  versicolor         1.5          4.5
## 53  versicolor         1.5          4.9
## 54  versicolor         1.3          4.0
## 55  versicolor         1.5          4.6
## 56  versicolor         1.3          4.5
## 57  versicolor         1.6          4.7
## 58  versicolor         1.0          3.3
## 59  versicolor         1.3          4.6
## 60  versicolor         1.4          3.9
## 61  versicolor         1.0          3.5
## 62  versicolor         1.5          4.2
## 63  versicolor         1.0          4.0
## 64  versicolor         1.4          4.7
## 65  versicolor         1.3          3.6
## 66  versicolor         1.4          4.4
## 67  versicolor         1.5          4.5
## 68  versicolor         1.0          4.1
## 69  versicolor         1.5          4.5
## 70  versicolor         1.1          3.9
## 71  versicolor         1.8          4.8
## 72  versicolor         1.3          4.0
## 73  versicolor         1.5          4.9
## 74  versicolor         1.2          4.7
## 75  versicolor         1.3          4.3
## 76  versicolor         1.4          4.4
## 77  versicolor         1.4          4.8
## 78  versicolor         1.7          5.0
## 79  versicolor         1.5          4.5
## 80  versicolor         1.0          3.5
## 81  versicolor         1.1          3.8
## 82  versicolor         1.0          3.7
## 83  versicolor         1.2          3.9
## 84  versicolor         1.6          5.1
## 85  versicolor         1.5          4.5
## 86  versicolor         1.6          4.5
## 87  versicolor         1.5          4.7
## 88  versicolor         1.3          4.4
## 89  versicolor         1.3          4.1
## 90  versicolor         1.3          4.0
## 91  versicolor         1.2          4.4
## 92  versicolor         1.4          4.6
## 93  versicolor         1.2          4.0
## 94  versicolor         1.0          3.3
## 95  versicolor         1.3          4.2
## 96  versicolor         1.2          4.2
## 97  versicolor         1.3          4.2
## 98  versicolor         1.3          4.3
## 99  versicolor         1.1          3.0
## 100 versicolor         1.3          4.1
## 101  virginica         2.5          6.0
## 102  virginica         1.9          5.1
## 103  virginica         2.1          5.9
## 104  virginica         1.8          5.6
## 105  virginica         2.2          5.8
## 106  virginica         2.1          6.6
## 107  virginica         1.7          4.5
## 108  virginica         1.8          6.3
## 109  virginica         1.8          5.8
## 110  virginica         2.5          6.1
## 111  virginica         2.0          5.1
## 112  virginica         1.9          5.3
## 113  virginica         2.1          5.5
## 114  virginica         2.0          5.0
## 115  virginica         2.4          5.1
## 116  virginica         2.3          5.3
## 117  virginica         1.8          5.5
## 118  virginica         2.2          6.7
## 119  virginica         2.3          6.9
## 120  virginica         1.5          5.0
## 121  virginica         2.3          5.7
## 122  virginica         2.0          4.9
## 123  virginica         2.0          6.7
## 124  virginica         1.8          4.9
## 125  virginica         2.1          5.7
## 126  virginica         1.8          6.0
## 127  virginica         1.8          4.8
## 128  virginica         1.8          4.9
## 129  virginica         2.1          5.6
## 130  virginica         1.6          5.8
## 131  virginica         1.9          6.1
## 132  virginica         2.0          6.4
## 133  virginica         2.2          5.6
## 134  virginica         1.5          5.1
## 135  virginica         1.4          5.6
## 136  virginica         2.3          6.1
## 137  virginica         2.4          5.6
## 138  virginica         1.8          5.5
## 139  virginica         1.8          4.8
## 140  virginica         2.1          5.4
## 141  virginica         2.4          5.6
## 142  virginica         2.3          5.1
## 143  virginica         1.9          5.1
## 144  virginica         2.3          5.9
## 145  virginica         2.5          5.7
## 146  virginica         2.3          5.2
## 147  virginica         1.9          5.0
## 148  virginica         2.0          5.2
## 149  virginica         2.3          5.4
## 150  virginica         1.8          5.1

Fungsi mutate()

Menggunakan fungsi mutate() untuk menambahkan peubah baru pada data.

iris %>% mutate(sepal=Sepal.Length+Sepal.Width)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species sepal
## 1            5.1         3.5          1.4         0.2     setosa   8.6
## 2            4.9         3.0          1.4         0.2     setosa   7.9
## 3            4.7         3.2          1.3         0.2     setosa   7.9
## 4            4.6         3.1          1.5         0.2     setosa   7.7
## 5            5.0         3.6          1.4         0.2     setosa   8.6
## 6            5.4         3.9          1.7         0.4     setosa   9.3
## 7            4.6         3.4          1.4         0.3     setosa   8.0
## 8            5.0         3.4          1.5         0.2     setosa   8.4
## 9            4.4         2.9          1.4         0.2     setosa   7.3
## 10           4.9         3.1          1.5         0.1     setosa   8.0
## 11           5.4         3.7          1.5         0.2     setosa   9.1
## 12           4.8         3.4          1.6         0.2     setosa   8.2
## 13           4.8         3.0          1.4         0.1     setosa   7.8
## 14           4.3         3.0          1.1         0.1     setosa   7.3
## 15           5.8         4.0          1.2         0.2     setosa   9.8
## 16           5.7         4.4          1.5         0.4     setosa  10.1
## 17           5.4         3.9          1.3         0.4     setosa   9.3
## 18           5.1         3.5          1.4         0.3     setosa   8.6
## 19           5.7         3.8          1.7         0.3     setosa   9.5
## 20           5.1         3.8          1.5         0.3     setosa   8.9
## 21           5.4         3.4          1.7         0.2     setosa   8.8
## 22           5.1         3.7          1.5         0.4     setosa   8.8
## 23           4.6         3.6          1.0         0.2     setosa   8.2
## 24           5.1         3.3          1.7         0.5     setosa   8.4
## 25           4.8         3.4          1.9         0.2     setosa   8.2
## 26           5.0         3.0          1.6         0.2     setosa   8.0
## 27           5.0         3.4          1.6         0.4     setosa   8.4
## 28           5.2         3.5          1.5         0.2     setosa   8.7
## 29           5.2         3.4          1.4         0.2     setosa   8.6
## 30           4.7         3.2          1.6         0.2     setosa   7.9
## 31           4.8         3.1          1.6         0.2     setosa   7.9
## 32           5.4         3.4          1.5         0.4     setosa   8.8
## 33           5.2         4.1          1.5         0.1     setosa   9.3
## 34           5.5         4.2          1.4         0.2     setosa   9.7
## 35           4.9         3.1          1.5         0.2     setosa   8.0
## 36           5.0         3.2          1.2         0.2     setosa   8.2
## 37           5.5         3.5          1.3         0.2     setosa   9.0
## 38           4.9         3.6          1.4         0.1     setosa   8.5
## 39           4.4         3.0          1.3         0.2     setosa   7.4
## 40           5.1         3.4          1.5         0.2     setosa   8.5
## 41           5.0         3.5          1.3         0.3     setosa   8.5
## 42           4.5         2.3          1.3         0.3     setosa   6.8
## 43           4.4         3.2          1.3         0.2     setosa   7.6
## 44           5.0         3.5          1.6         0.6     setosa   8.5
## 45           5.1         3.8          1.9         0.4     setosa   8.9
## 46           4.8         3.0          1.4         0.3     setosa   7.8
## 47           5.1         3.8          1.6         0.2     setosa   8.9
## 48           4.6         3.2          1.4         0.2     setosa   7.8
## 49           5.3         3.7          1.5         0.2     setosa   9.0
## 50           5.0         3.3          1.4         0.2     setosa   8.3
## 51           7.0         3.2          4.7         1.4 versicolor  10.2
## 52           6.4         3.2          4.5         1.5 versicolor   9.6
## 53           6.9         3.1          4.9         1.5 versicolor  10.0
## 54           5.5         2.3          4.0         1.3 versicolor   7.8
## 55           6.5         2.8          4.6         1.5 versicolor   9.3
## 56           5.7         2.8          4.5         1.3 versicolor   8.5
## 57           6.3         3.3          4.7         1.6 versicolor   9.6
## 58           4.9         2.4          3.3         1.0 versicolor   7.3
## 59           6.6         2.9          4.6         1.3 versicolor   9.5
## 60           5.2         2.7          3.9         1.4 versicolor   7.9
## 61           5.0         2.0          3.5         1.0 versicolor   7.0
## 62           5.9         3.0          4.2         1.5 versicolor   8.9
## 63           6.0         2.2          4.0         1.0 versicolor   8.2
## 64           6.1         2.9          4.7         1.4 versicolor   9.0
## 65           5.6         2.9          3.6         1.3 versicolor   8.5
## 66           6.7         3.1          4.4         1.4 versicolor   9.8
## 67           5.6         3.0          4.5         1.5 versicolor   8.6
## 68           5.8         2.7          4.1         1.0 versicolor   8.5
## 69           6.2         2.2          4.5         1.5 versicolor   8.4
## 70           5.6         2.5          3.9         1.1 versicolor   8.1
## 71           5.9         3.2          4.8         1.8 versicolor   9.1
## 72           6.1         2.8          4.0         1.3 versicolor   8.9
## 73           6.3         2.5          4.9         1.5 versicolor   8.8
## 74           6.1         2.8          4.7         1.2 versicolor   8.9
## 75           6.4         2.9          4.3         1.3 versicolor   9.3
## 76           6.6         3.0          4.4         1.4 versicolor   9.6
## 77           6.8         2.8          4.8         1.4 versicolor   9.6
## 78           6.7         3.0          5.0         1.7 versicolor   9.7
## 79           6.0         2.9          4.5         1.5 versicolor   8.9
## 80           5.7         2.6          3.5         1.0 versicolor   8.3
## 81           5.5         2.4          3.8         1.1 versicolor   7.9
## 82           5.5         2.4          3.7         1.0 versicolor   7.9
## 83           5.8         2.7          3.9         1.2 versicolor   8.5
## 84           6.0         2.7          5.1         1.6 versicolor   8.7
## 85           5.4         3.0          4.5         1.5 versicolor   8.4
## 86           6.0         3.4          4.5         1.6 versicolor   9.4
## 87           6.7         3.1          4.7         1.5 versicolor   9.8
## 88           6.3         2.3          4.4         1.3 versicolor   8.6
## 89           5.6         3.0          4.1         1.3 versicolor   8.6
## 90           5.5         2.5          4.0         1.3 versicolor   8.0
## 91           5.5         2.6          4.4         1.2 versicolor   8.1
## 92           6.1         3.0          4.6         1.4 versicolor   9.1
## 93           5.8         2.6          4.0         1.2 versicolor   8.4
## 94           5.0         2.3          3.3         1.0 versicolor   7.3
## 95           5.6         2.7          4.2         1.3 versicolor   8.3
## 96           5.7         3.0          4.2         1.2 versicolor   8.7
## 97           5.7         2.9          4.2         1.3 versicolor   8.6
## 98           6.2         2.9          4.3         1.3 versicolor   9.1
## 99           5.1         2.5          3.0         1.1 versicolor   7.6
## 100          5.7         2.8          4.1         1.3 versicolor   8.5
## 101          6.3         3.3          6.0         2.5  virginica   9.6
## 102          5.8         2.7          5.1         1.9  virginica   8.5
## 103          7.1         3.0          5.9         2.1  virginica  10.1
## 104          6.3         2.9          5.6         1.8  virginica   9.2
## 105          6.5         3.0          5.8         2.2  virginica   9.5
## 106          7.6         3.0          6.6         2.1  virginica  10.6
## 107          4.9         2.5          4.5         1.7  virginica   7.4
## 108          7.3         2.9          6.3         1.8  virginica  10.2
## 109          6.7         2.5          5.8         1.8  virginica   9.2
## 110          7.2         3.6          6.1         2.5  virginica  10.8
## 111          6.5         3.2          5.1         2.0  virginica   9.7
## 112          6.4         2.7          5.3         1.9  virginica   9.1
## 113          6.8         3.0          5.5         2.1  virginica   9.8
## 114          5.7         2.5          5.0         2.0  virginica   8.2
## 115          5.8         2.8          5.1         2.4  virginica   8.6
## 116          6.4         3.2          5.3         2.3  virginica   9.6
## 117          6.5         3.0          5.5         1.8  virginica   9.5
## 118          7.7         3.8          6.7         2.2  virginica  11.5
## 119          7.7         2.6          6.9         2.3  virginica  10.3
## 120          6.0         2.2          5.0         1.5  virginica   8.2
## 121          6.9         3.2          5.7         2.3  virginica  10.1
## 122          5.6         2.8          4.9         2.0  virginica   8.4
## 123          7.7         2.8          6.7         2.0  virginica  10.5
## 124          6.3         2.7          4.9         1.8  virginica   9.0
## 125          6.7         3.3          5.7         2.1  virginica  10.0
## 126          7.2         3.2          6.0         1.8  virginica  10.4
## 127          6.2         2.8          4.8         1.8  virginica   9.0
## 128          6.1         3.0          4.9         1.8  virginica   9.1
## 129          6.4         2.8          5.6         2.1  virginica   9.2
## 130          7.2         3.0          5.8         1.6  virginica  10.2
## 131          7.4         2.8          6.1         1.9  virginica  10.2
## 132          7.9         3.8          6.4         2.0  virginica  11.7
## 133          6.4         2.8          5.6         2.2  virginica   9.2
## 134          6.3         2.8          5.1         1.5  virginica   9.1
## 135          6.1         2.6          5.6         1.4  virginica   8.7
## 136          7.7         3.0          6.1         2.3  virginica  10.7
## 137          6.3         3.4          5.6         2.4  virginica   9.7
## 138          6.4         3.1          5.5         1.8  virginica   9.5
## 139          6.0         3.0          4.8         1.8  virginica   9.0
## 140          6.9         3.1          5.4         2.1  virginica  10.0
## 141          6.7         3.1          5.6         2.4  virginica   9.8
## 142          6.9         3.1          5.1         2.3  virginica  10.0
## 143          5.8         2.7          5.1         1.9  virginica   8.5
## 144          6.8         3.2          5.9         2.3  virginica  10.0
## 145          6.7         3.3          5.7         2.5  virginica  10.0
## 146          6.7         3.0          5.2         2.3  virginica   9.7
## 147          6.3         2.5          5.0         1.9  virginica   8.8
## 148          6.5         3.0          5.2         2.0  virginica   9.5
## 149          6.2         3.4          5.4         2.3  virginica   9.6
## 150          5.9         3.0          5.1         1.8  virginica   8.9

Berbagai fungsi pada package dplyr dapat dilihat pada cheatsheet yang dapat diakses pada link ini.

Case Study: Baseball Data Set

Studi kasus dilakukan dengan menggunakan data baseball yang terdapat pada package Lahman. Untuk itu package tersebut perlu diinstall dan di-load terlebih dulu dengan script berikut:

install.packages("Lahman")

Setelah itu, kita dapat memanggil data yang akan digunakan, yaitu data Teams.

library(Lahman)
data("Teams")
#Teams<-tibble::as_tibble(Teams)

Untuk mengetahui deskripsi data Teams, kita dapat menggunakan perintah help() atau ?? berikut.

??Teams

Menurut Lahman (2020), “The updated version of the database contains complete batting and pitching statistics from 1871 to 2019, plus fielding statistics, standings, team stats, managerial records, post-season data, and more”.

Data Exploration

Fungsi dim dapat digunakan untuk mengetahui ukuran data sedangkan fungsi glimpse dan head dapat digunakan untuk melihat pratinjau dari data.

dim(Teams)
## [1] 2985   48

Artinya, data Teams terdiri dari 2925 baris (pengamatan) dan 48 kolom (peubah).

head(Teams)
##   yearID lgID teamID franchID divID Rank  G Ghome  W  L DivWin WCWin LgWin
## 1   1871   NA    BS1      BNA  <NA>    3 31    NA 20 10   <NA>  <NA>     N
## 2   1871   NA    CH1      CNA  <NA>    2 28    NA 19  9   <NA>  <NA>     N
## 3   1871   NA    CL1      CFC  <NA>    8 29    NA 10 19   <NA>  <NA>     N
## 4   1871   NA    FW1      KEK  <NA>    7 19    NA  7 12   <NA>  <NA>     N
## 5   1871   NA    NY2      NNA  <NA>    5 33    NA 16 17   <NA>  <NA>     N
## 6   1871   NA    PH1      PNA  <NA>    1 28    NA 21  7   <NA>  <NA>     Y
##   WSWin   R   AB   H X2B X3B HR BB SO SB CS HBP SF  RA  ER  ERA CG SHO SV
## 1  <NA> 401 1372 426  70  37  3 60 19 73 16  NA NA 303 109 3.55 22   1  3
## 2  <NA> 302 1196 323  52  21 10 60 22 69 21  NA NA 241  77 2.76 25   0  1
## 3  <NA> 249 1186 328  35  40  7 26 25 18  8  NA NA 341 116 4.11 23   0  0
## 4  <NA> 137  746 178  19   8  2 33  9 16  4  NA NA 243  97 5.17 19   1  0
## 5  <NA> 302 1404 403  43  21  1 33 15 46 15  NA NA 313 121 3.72 32   1  0
## 6  <NA> 376 1281 410  66  27  9 46 23 56 12  NA NA 266 137 4.95 27   0  0
##   IPouts  HA HRA BBA SOA   E DP    FP                    name
## 1    828 367   2  42  23 243 24 0.834    Boston Red Stockings
## 2    753 308   6  28  22 229 16 0.829 Chicago White Stockings
## 3    762 346  13  53  34 234 15 0.818  Cleveland Forest Citys
## 4    507 261   5  21  17 163  8 0.803    Fort Wayne Kekiongas
## 5    879 373   7  42  22 235 14 0.840        New York Mutuals
## 6    747 329   3  53  16 194 13 0.845  Philadelphia Athletics
##                           park attendance BPF PPF teamIDBR teamIDlahman45
## 1          South End Grounds I         NA 103  98      BOS            BS1
## 2      Union Base-Ball Grounds         NA 104 102      CHI            CH1
## 3 National Association Grounds         NA  96 100      CLE            CL1
## 4               Hamilton Field         NA 101 107      KEK            FW1
## 5     Union Grounds (Brooklyn)         NA  90  88      NYU            NY2
## 6     Jefferson Street Grounds         NA 102  98      ATH            PH1
##   teamIDretro
## 1         BS1
## 2         CH1
## 3         CL1
## 4         FW1
## 5         NY2
## 6         PH1
glimpse(Teams)
## Rows: 2,985
## Columns: 48
## $ yearID         <int> 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1…
## $ lgID           <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ teamID         <fct> BS1, CH1, CL1, FW1, NY2, PH1, RC1, TRO, WS3, BL1, BR1, …
## $ franchID       <fct> BNA, CNA, CFC, KEK, NNA, PNA, ROK, TRO, OLY, BLC, ECK, …
## $ divID          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ Rank           <int> 3, 2, 8, 7, 5, 1, 9, 6, 4, 2, 9, 6, 1, 7, 8, 3, 4, 5, 1…
## $ G              <int> 31, 28, 29, 19, 33, 28, 25, 29, 32, 58, 29, 37, 48, 22,…
## $ Ghome          <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ W              <int> 20, 19, 10, 7, 16, 21, 4, 13, 15, 35, 3, 9, 39, 6, 5, 3…
## $ L              <int> 10, 9, 19, 12, 17, 7, 21, 15, 15, 19, 26, 28, 8, 16, 19…
## $ DivWin         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ WCWin          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ LgWin          <chr> "N", "N", "N", "N", "N", "Y", "N", "N", "N", "N", "N", …
## $ WSWin          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ R              <int> 401, 302, 249, 137, 302, 376, 231, 351, 310, 617, 152, …
## $ AB             <int> 1372, 1196, 1186, 746, 1404, 1281, 1036, 1248, 1353, 25…
## $ H              <int> 426, 323, 328, 178, 403, 410, 274, 384, 375, 753, 248, …
## $ X2B            <int> 70, 52, 35, 19, 43, 66, 44, 51, 54, 106, 29, 35, 107, 2…
## $ X3B            <int> 37, 21, 40, 8, 21, 27, 25, 34, 26, 31, 9, 10, 30, 5, 9,…
## $ HR             <int> 3, 10, 7, 2, 1, 9, 3, 6, 6, 14, 0, 1, 7, 0, 2, 4, 4, 5,…
## $ BB             <int> 60, 60, 26, 33, 33, 46, 38, 49, 48, 29, 18, 19, 29, 17,…
## $ SO             <int> 19, 22, 25, 9, 15, 23, 30, 19, 13, 28, 40, 25, 26, 13, …
## $ SB             <int> 73, 69, 18, 16, 46, 56, 53, 62, 48, 53, 8, 19, 48, 12, …
## $ CS             <int> 16, 21, 8, 4, 15, 12, 10, 24, 13, 18, 13, 16, 14, 3, 7,…
## $ HBP            <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ SF             <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ RA             <int> 303, 241, 341, 243, 313, 266, 287, 362, 303, 434, 413, …
## $ ER             <int> 109, 77, 116, 97, 121, 137, 108, 153, 137, 166, 160, 16…
## $ ERA            <dbl> 3.55, 2.76, 4.11, 5.17, 3.72, 4.95, 4.30, 5.51, 4.37, 2…
## $ CG             <int> 22, 25, 23, 19, 32, 27, 23, 28, 32, 48, 28, 37, 41, 15,…
## $ SHO            <int> 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 3, 1, 2, 0…
## $ SV             <int> 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 1, 0, 1, 0…
## $ IPouts         <int> 828, 753, 762, 507, 879, 747, 678, 750, 846, 1548, 778,…
## $ HA             <int> 367, 308, 346, 261, 373, 329, 315, 431, 371, 573, 484, …
## $ HRA            <int> 2, 6, 13, 5, 7, 3, 3, 4, 4, 3, 7, 6, 0, 6, 6, 2, 3, 2, …
## $ BBA            <int> 42, 28, 53, 21, 42, 53, 34, 75, 45, 63, 36, 21, 27, 24,…
## $ SOA            <int> 23, 22, 34, 17, 22, 16, 16, 12, 13, 77, 13, 13, 29, 11,…
## $ E              <int> 243, 229, 234, 163, 235, 194, 220, 198, 218, 432, 274, …
## $ DP             <int> 24, 16, 15, 8, 14, 13, 14, 22, 20, 22, 9, 15, 44, 17, 1…
## $ FP             <dbl> 0.834, 0.829, 0.818, 0.803, 0.840, 0.845, 0.821, 0.845,…
## $ name           <chr> "Boston Red Stockings", "Chicago White Stockings", "Cle…
## $ park           <chr> "South End Grounds I", "Union Base-Ball Grounds", "Nati…
## $ attendance     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ BPF            <int> 103, 104, 96, 101, 90, 102, 97, 101, 94, 106, 87, 115, …
## $ PPF            <int> 98, 102, 100, 107, 88, 98, 99, 100, 98, 102, 96, 122, 1…
## $ teamIDBR       <chr> "BOS", "CHI", "CLE", "KEK", "NYU", "ATH", "ROK", "TRO",…
## $ teamIDlahman45 <chr> "BS1", "CH1", "CL1", "FW1", "NY2", "PH1", "RC1", "TRO",…
## $ teamIDretro    <chr> "BS1", "CH1", "CL1", "FW1", "NY2", "PH1", "RC1", "TRO",…

Filtering

Seandainya seorang pemain bernama Ben bergabung dengan tim New York Mets selama tahun 2004 hingga 2012, cobalah untuk meneliti bagaimana performa tim pada periode tersebut. Fungsi filter dan select dapat digunakan untuk mengidentifikasi secara cepat untuk menjawab pertanyaan tersebut.Sebagai catatan, NYN merupakan singkatan dari klub New York National League.

Langkah pertama adalah melakukan filter pada data Teams sehingga diperoleh hanya data untuk tim New York Mets.

mets<-Teams %>% filter(teamID=="NYN")
nrow(mets)
## [1] 60
head(mets)
##   yearID lgID teamID franchID divID Rank   G Ghome  W   L DivWin WCWin LgWin
## 1   1962   NL    NYN      NYM  <NA>   10 161    80 40 120   <NA>  <NA>     N
## 2   1963   NL    NYN      NYM  <NA>   10 162    81 51 111   <NA>  <NA>     N
## 3   1964   NL    NYN      NYM  <NA>   10 163    82 53 109   <NA>  <NA>     N
## 4   1965   NL    NYN      NYM  <NA>   10 164    82 50 112   <NA>  <NA>     N
## 5   1966   NL    NYN      NYM  <NA>    9 161    81 66  95   <NA>  <NA>     N
## 6   1967   NL    NYN      NYM  <NA>   10 162    78 61 101   <NA>  <NA>     N
##   WSWin   R   AB    H X2B X3B  HR  BB   SO SB CS HBP SF  RA  ER  ERA CG SHO SV
## 1     N 617 5492 1318 166  40 139 616  991 59 48  NA NA 948 801 5.04 43   4 10
## 2     N 501 5336 1168 156  35  96 457 1078 41 52  NA NA 774 653 4.12 42   5 12
## 3     N 569 5566 1372 195  31 103 353  932 36 31  NA NA 776 679 4.25 40  10 15
## 4     N 495 5441 1202 203  27 107 392 1129 28 42  NA NA 752 656 4.06 29  11 14
## 5     N 587 5371 1286 187  35  98 446  992 55 46  NA NA 761 661 4.17 37   9 22
## 6     N 498 5417 1288 178  23  83 362  981 58 44  NA NA 672 594 3.73 36  10 19
##   IPouts   HA HRA BBA SOA   E  DP    FP          name            park
## 1   4290 1577 192 571 772 210 167 0.967 New York Mets Polo Grounds IV
## 2   4281 1452 162 529 806 208 151 0.967 New York Mets Polo Grounds IV
## 3   4314 1511 130 466 717 166 154 0.974 New York Mets    Shea Stadium
## 4   4362 1462 147 498 776 169 153 0.974 New York Mets    Shea Stadium
## 5   4281 1497 166 521 773 159 171 0.975 New York Mets    Shea Stadium
## 6   4299 1369 124 536 893 157 147 0.975 New York Mets    Shea Stadium
##   attendance BPF PPF teamIDBR teamIDlahman45 teamIDretro
## 1     922530 100 105      NYM            NYN         NYN
## 2    1080108 100 105      NYM            NYN         NYN
## 3    1732597  97 100      NYM            NYN         NYN
## 4    1768389  96  99      NYM            NYN         NYN
## 5    1932693  97 100      NYM            NYN         NYN
## 6    1565492  98 100      NYM            NYN         NYN

Perhatikan bahwa terdapat 58 pengamatan pada data, dimulai dari tahun 1962. Hal ini karena tim the Mets baru bergabung dengan National League pada tahun 1962.

Langkah berikutnya adalah memfilter data hanya ketika Ben bergabung dengan tim, yaitu dimulai pada tahun 2004 dan berakhir 2012.

myMets<-mets %>% filter(yearID %in% 2004:2012)
myMets %>% select(yearID, teamID, W, L)
##   yearID teamID  W  L
## 1   2004    NYN 71 91
## 2   2005    NYN 83 79
## 3   2006    NYN 97 65
## 4   2007    NYN 88 74
## 5   2008    NYN 89 73
## 6   2009    NYN 70 92
## 7   2010    NYN 79 83
## 8   2011    NYN 77 85
## 9   2012    NYN 74 88

Hal ini juga dapat dilakukan sedemikian sehingga kita tidak perlu membuat data baru, sehingga kinerja program menjadi lebih efisien.

Teams %>%
  select(yearID, teamID, W, L) %>%
  filter(teamID=="NYN" & yearID %in% 2004:2012)
##   yearID teamID  W  L
## 1   2004    NYN 71 91
## 2   2005    NYN 83 79
## 3   2006    NYN 97 65
## 4   2007    NYN 88 74
## 5   2008    NYN 89 73
## 6   2009    NYN 70 92
## 7   2010    NYN 79 83
## 8   2011    NYN 77 85
## 9   2012    NYN 74 88

Output tersebut menunjukkan performa tim berdasarkan banyaknya kemenangan (wins (W)) dan kekalahan (losses (L)) selama Ben berada pada tim the Mets.

Setelah mencermati tabel di atas, dapat dilihat bahwa tim The Mets lebih banyak mengalami kekalahan (5 dari 9 tahun) pada periode tersebut. Untuk menelusuri apakah ini terjadi secara kebetulan atau tidak, maka kita perlu meneliti berapa rata-rata kemenangan the Mets yang sesungguhnya.

Penelurusan dimulai dengan mencari nilai harapan dari tingkat kemenangan tim tersebut. Untuk dapat menentukan nilai harapan tersebut, kita dapat memanfaatkan data banyaknya runs yang berhasil mereka menangkan (number of runs that the team scores (RS)) dan banyaknya runs yang mereka lakukan dalam pertandingan(number of runs that the team allows (RA)).

metsBen <- Teams %>% select(yearID, teamID, W, L, R, RA) %>%
filter(teamID == "NYN" & yearID %in% 2004:2012)
metsBen
##   yearID teamID  W  L   R  RA
## 1   2004    NYN 71 91 684 731
## 2   2005    NYN 83 79 722 648
## 3   2006    NYN 97 65 834 731
## 4   2007    NYN 88 74 804 750
## 5   2008    NYN 89 73 799 715
## 6   2009    NYN 70 92 671 757
## 7   2010    NYN 79 83 656 652
## 8   2011    NYN 77 85 718 742
## 9   2012    NYN 74 88 650 709

Untuk memudahkan penamaan variable, maka kita ganti nama variable R menjadi RS.

metsBen <- metsBen %>% rename(RS = R) # new name = old name
metsBen
##   yearID teamID  W  L  RS  RA
## 1   2004    NYN 71 91 684 731
## 2   2005    NYN 83 79 722 648
## 3   2006    NYN 97 65 834 731
## 4   2007    NYN 88 74 804 750
## 5   2008    NYN 89 73 799 715
## 6   2009    NYN 70 92 671 757
## 7   2010    NYN 79 83 656 652
## 8   2011    NYN 77 85 718 742
## 9   2012    NYN 74 88 650 709

Persentase kemenangan dapat dihitung secara empirik berdasarkan data historis.

metsBen <- metsBen %>% mutate(WPct = W / (W + L))
metsBen
##   yearID teamID  W  L  RS  RA      WPct
## 1   2004    NYN 71 91 684 731 0.4382716
## 2   2005    NYN 83 79 722 648 0.5123457
## 3   2006    NYN 97 65 834 731 0.5987654
## 4   2007    NYN 88 74 804 750 0.5432099
## 5   2008    NYN 89 73 799 715 0.5493827
## 6   2009    NYN 70 92 671 757 0.4320988
## 7   2010    NYN 79 83 656 652 0.4876543
## 8   2011    NYN 77 85 718 742 0.4753086
## 9   2012    NYN 74 88 650 709 0.4567901

Selanjutnya anggaplah model yang digunakan untuk menentukan nilai harapan bagi tingkat kemenangan yang umum digunakan pada sabermetrics adalah dengan menggunakan rumus berikut:

\[W_{pct_{duga}}=\frac{1}{1+(\frac{RA}{RS})^2}\]

metsBen <- metsBen %>% mutate(WPct_hat = 1 / (1 +(RA/RS)^2))
metsBen
##   yearID teamID  W  L  RS  RA      WPct  WPct_hat
## 1   2004    NYN 71 91 684 731 0.4382716 0.4668211
## 2   2005    NYN 83 79 722 648 0.5123457 0.5538575
## 3   2006    NYN 97 65 834 731 0.5987654 0.5655308
## 4   2007    NYN 88 74 804 750 0.5432099 0.5347071
## 5   2008    NYN 89 73 799 715 0.5493827 0.5553119
## 6   2009    NYN 70 92 671 757 0.4320988 0.4399936
## 7   2010    NYN 79 83 656 652 0.4876543 0.5030581
## 8   2011    NYN 77 85 718 742 0.4753086 0.4835661
## 9   2012    NYN 74 88 650 709 0.4567901 0.4566674

Nilai harapan untuk kemenangan the Mets dapat dihitung dengan mengalikan \(W_{pct_{duga}}\) dengan banyaknya games.

metsBen <- metsBen %>% mutate(W_hat = WPct_hat * (W + L))
metsBen
##   yearID teamID  W  L  RS  RA      WPct  WPct_hat    W_hat
## 1   2004    NYN 71 91 684 731 0.4382716 0.4668211 75.62501
## 2   2005    NYN 83 79 722 648 0.5123457 0.5538575 89.72491
## 3   2006    NYN 97 65 834 731 0.5987654 0.5655308 91.61600
## 4   2007    NYN 88 74 804 750 0.5432099 0.5347071 86.62255
## 5   2008    NYN 89 73 799 715 0.5493827 0.5553119 89.96053
## 6   2009    NYN 70 92 671 757 0.4320988 0.4399936 71.27896
## 7   2010    NYN 79 83 656 652 0.4876543 0.5030581 81.49541
## 8   2011    NYN 77 85 718 742 0.4753086 0.4835661 78.33771
## 9   2012    NYN 74 88 650 709 0.4567901 0.4566674 73.98012

Berdasarkan informasi di atas, kita dapat menelusuri kapan the Mets mengalami kemenangan yang lebih besar dari nilai harapannya.

filter(metsBen, W >= W_hat)
##   yearID teamID  W  L  RS  RA      WPct  WPct_hat    W_hat
## 1   2006    NYN 97 65 834 731 0.5987654 0.5655308 91.61600
## 2   2007    NYN 88 74 804 750 0.5432099 0.5347071 86.62255
## 3   2012    NYN 74 88 650 709 0.4567901 0.4566674 73.98012

Ternyata, the Mets bermain lebih baik dari dugaannya pada musim di tahun 2006, 2007, dan 2012. Dan hal sebaliknya terjadi pada musim di tahun-tahun yang lain selama Ben bermain bersama the Mets. Untuk mengetahui musim terbaik bagi the Mets, kita dapat mengurutkan data tersebut seperti yang dapat dilihat di bawah ini.

arrange(metsBen, desc(WPct))
##   yearID teamID  W  L  RS  RA      WPct  WPct_hat    W_hat
## 1   2006    NYN 97 65 834 731 0.5987654 0.5655308 91.61600
## 2   2008    NYN 89 73 799 715 0.5493827 0.5553119 89.96053
## 3   2007    NYN 88 74 804 750 0.5432099 0.5347071 86.62255
## 4   2005    NYN 83 79 722 648 0.5123457 0.5538575 89.72491
## 5   2010    NYN 79 83 656 652 0.4876543 0.5030581 81.49541
## 6   2011    NYN 77 85 718 742 0.4753086 0.4835661 78.33771
## 7   2012    NYN 74 88 650 709 0.4567901 0.4566674 73.98012
## 8   2004    NYN 71 91 684 731 0.4382716 0.4668211 75.62501
## 9   2009    NYN 70 92 671 757 0.4320988 0.4399936 71.27896

Untuk melihat ringkasan data untuk menilai performa tim selama tahun 2004-2012, kita dapat menggunakan fungsi summarize() berikut.

metsBen %>%
  summarize(num_years = n(), total_W = sum(W), total_L = sum(L),
            total_WPct = sum(W) / sum(W + L), sum_resid = sum(W - W_hat))
##   num_years total_W total_L total_WPct sum_resid
## 1         9     728     730  0.4993141 -10.64119

Seperti dijelaskan oleh Baumer et al. (2017),

“Dalam sembilan tahun ini, Mets memiliki rekor gabungan 728 kemenangan dan 730 kekalahan, dengan persentase kemenangan keseluruhan 0,499. Hanya satu kemenangan ekstra akan membuat mereka tepat 0,500! (Jika kami dapat memilih game untuk bermain kembali, kami pasti akan memilih game terakhir musim 2007. Playoff di sana pasti akan menghasilkan kemenangan.) Namun, kami juga telah mempelajari bahwa performa tim relatif buruk berdasarkan model yang dibuat, yaitu dengan total selisih 10,6 pertandingan selama sembilan musim tersebut”, (p. 77).

Analisa lebih lanjut untuk studi kasus ini dapat dipelajari pada Baumer et al. (2017).

Tugas

Tugas untuk Praktikum 01 ini adalah :

  1. Cari Datasets selain iris dan Teams.
  2. Anda hanya boleh menggunakan data di package datasets maupun datasets di package R lainnya.
  3. Pada datasets yang Anda pilih, Praktikkan penggunaan fungsi summarise(), arrange(), filter(),mutate(), select() minimal 1 kali secara terpisah.
  4. Praktikan penggunaan fungsi tersebut secara bersama-sama.(jumlahnya bebas)
  5. Kerjakan tugas tersebut menggunakan rmarkdown. Upload file html di newlms dan publish pekerjaan Anda tersebut di Rpubs Anda masing-masing. Harap sertakan link ke Rpubs tersebut di file html yang Anda kumpulkan di newlms.

Referensi

Baumer, B.S., Kaplan, D.T., Horton, N.J. 2017. Modern Data Science with R. CRC Press.

Hidayatuloh, A. (June 10, 2019). Eksplorasi data Menggunakan R (Tidyverse approach). Retrieved from https://rstudio-pubs-static.s3.amazonaws.com/503447_57eb680b5be348b6b965df58e354767

Huynh, Y. W. (2019, August 6). Chapter 4 introduction to Tidyverse | R for graduate students. Retrieved from https://bookdown.org/yih_huynh/Guide-to-R-Book/tidyverse.html

Lahman, S. (2020, April 3). Lahman’s baseball database. SeanLahman.com. Retrieved from https://www.seanlahman.com/baseball-archive/statistics/

Oliver, J. (n.d.). Introduction to tidyverse packages. Retrieved from https://jcoliver.github.io/learn-r/012-intro-tidyverse.html

Panggola, S.A. (2020, January 6). Ekplorasi data Menggunakan packages Tidyverse Di R (Part 1). Retrieved from https://medium.com/@17611078/ekplorasi-data-menggunakan-packages-tidyverse-di-r-part-1-de463e92b6fb

Speegle, D., & Clair, B. (2020, August 10). Chapter 1 data in R | Foundations of statistics with R. SLU Mathematics and Statistics : Department of Mathematics and Statistics. https://mathstat.slu.edu/~speegle/_book/RData.html

Willems, K. (2017, November 17). Pipes in R tutorial for beginners. DataCamp Community. Retrieved from https://www.datacamp.com/community/tutorials/pipe-r-tutorial


  1. IPB University, ↩︎

  2. IPB University, ↩︎

  3. Badan Informasi Geospasial, ↩︎