Pengenalan tidyverse : Wrangling dengan dplyr
Materi ini akan membahas pengenalan package tidyverse
yang merupakan kumpulan dari beberapa package, di antaranya
readr
digunakan untuk mengimpor data tabulartidyr
digunakan untuk merapihkan datadplyr
digunakan untuk memanipulasi dataggplot2
digunakan untuk visualisasi data
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.
::tic()
tictoc<-utils::read.csv("https://raw.githubusercontent.com/plotly/datasets/master/mtcars.csv")
cars1class(cars1)
## [1] "data.frame"
::toc() tictoc
## 0.58 sec elapsed
::tic()
tictoc<-readr::read_csv("https://raw.githubusercontent.com/plotly/datasets/master/mtcars.csv") cars2
## 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"
::toc() tictoc
## 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
$Sepal.Length %>% mean() iris
## [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.
<- c(0.109, 0.359, 0.63, 0.996, 0.515, 0.142, 0.017, 0.829, 0.907) x
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.
%>% log() %>%
x 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
%>% group_by(Species) %>% summarise(mean=mean(Sepal.Length), .groups='drop') iris
## # 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
%>% arrange(Sepal.Length) iris
## 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
%>% arrange(desc(Sepal.Length)) iris
## 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.
%>% filter(Species=="setosa") iris
## 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.
%>% select(Species,Petal.Width,Petal.Length) iris
## 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.
%>% mutate(sepal=Sepal.Length+Sepal.Width) iris
## 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.
<-Teams %>% filter(teamID=="NYN")
metsnrow(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.
<-mets %>% filter(yearID %in% 2004:2012)
myMets%>% select(yearID, teamID, W, L) myMets
## 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)).
<- Teams %>% select(yearID, teamID, W, L, R, RA) %>%
metsBen 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 %>% rename(RS = R) # new name = old name
metsBen 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 %>% mutate(WPct = W / (W + L))
metsBen 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 %>% mutate(WPct_hat = 1 / (1 +(RA/RS)^2))
metsBen 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 %>% mutate(W_hat = WPct_hat * (W + L))
metsBen 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 :
- Cari Datasets selain
iris
danTeams
.
- Anda hanya boleh menggunakan data di package
datasets
maupun datasets di packageR
lainnya.
- Pada datasets yang Anda pilih, Praktikkan penggunaan fungsi
summarise()
,arrange()
,filter()
,mutate()
,select()
minimal 1 kali secara terpisah.
- Praktikan penggunaan fungsi tersebut secara bersama-sama.(jumlahnya
bebas)
- Kerjakan tugas tersebut menggunakan
rmarkdown
. Upload filehtml
dinewlms
dan publish pekerjaan Anda tersebut diRpubs
Anda masing-masing. Harap sertakan link ke Rpubs tersebut di filehtml
yang Anda kumpulkan dinewlms
.
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
IPB University, rahmaanisa@apps.ipb.ac.id↩︎
IPB University, gerry_dito@apps.ipb.ac.id↩︎
Badan Informasi Geospasial, abdul.aziz@big.go.id↩︎