databaru <- data.frame(Titanic)
databaru
## Class Sex Age Survived Freq
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 3rd Male Child No 35
## 4 Crew Male Child No 0
## 5 1st Female Child No 0
## 6 2nd Female Child No 0
## 7 3rd Female Child No 17
## 8 Crew Female Child No 0
## 9 1st Male Adult No 118
## 10 2nd Male Adult No 154
## 11 3rd Male Adult No 387
## 12 Crew Male Adult No 670
## 13 1st Female Adult No 4
## 14 2nd Female Adult No 13
## 15 3rd Female Adult No 89
## 16 Crew Female Adult No 3
## 17 1st Male Child Yes 5
## 18 2nd Male Child Yes 11
## 19 3rd Male Child Yes 13
## 20 Crew Male Child Yes 0
## 21 1st Female Child Yes 1
## 22 2nd Female Child Yes 13
## 23 3rd Female Child Yes 14
## 24 Crew Female Child Yes 0
## 25 1st Male Adult Yes 57
## 26 2nd Male Adult Yes 14
## 27 3rd Male Adult Yes 75
## 28 Crew Male Adult Yes 192
## 29 1st Female Adult Yes 140
## 30 2nd Female Adult Yes 80
## 31 3rd Female Adult Yes 76
## 32 Crew Female Adult Yes 20
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#select() berguna untuk memilih kolom yang relevan. Misalnya di sini kita hanya ambil informasi kelas, jenis kelamin, dan status selamat.
titanic_selected <- select(databaru, Sex, Class, Survived)
head(titanic_selected)
## Sex Class Survived
## 1 Male 1st No
## 2 Male 2nd No
## 3 Male 3rd No
## 4 Male Crew No
## 5 Female 1st No
## 6 Female 2nd No
#contoh kalau tidak pake ‘head’
titanic_selected <- select(databaru, Sex, Class, Survived)
(titanic_selected)
## Sex Class Survived
## 1 Male 1st No
## 2 Male 2nd No
## 3 Male 3rd No
## 4 Male Crew No
## 5 Female 1st No
## 6 Female 2nd No
## 7 Female 3rd No
## 8 Female Crew No
## 9 Male 1st No
## 10 Male 2nd No
## 11 Male 3rd No
## 12 Male Crew No
## 13 Female 1st No
## 14 Female 2nd No
## 15 Female 3rd No
## 16 Female Crew No
## 17 Male 1st Yes
## 18 Male 2nd Yes
## 19 Male 3rd Yes
## 20 Male Crew Yes
## 21 Female 1st Yes
## 22 Female 2nd Yes
## 23 Female 3rd Yes
## 24 Female Crew Yes
## 25 Male 1st Yes
## 26 Male 2nd Yes
## 27 Male 3rd Yes
## 28 Male Crew Yes
## 29 Female 1st Yes
## 30 Female 2nd Yes
## 31 Female 3rd Yes
## 32 Female Crew Yes
library(dplyr)
#filter() digunakan untuk menyaring baris tertentu, misalnya hanya anak-anak.
titanic_child <- filter(databaru, Age == "Child")
titanic_child
## Class Sex Age Survived Freq
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 3rd Male Child No 35
## 4 Crew Male Child No 0
## 5 1st Female Child No 0
## 6 2nd Female Child No 0
## 7 3rd Female Child No 17
## 8 Crew Female Child No 0
## 9 1st Male Child Yes 5
## 10 2nd Male Child Yes 11
## 11 3rd Male Child Yes 13
## 12 Crew Male Child Yes 0
## 13 1st Female Child Yes 1
## 14 2nd Female Child Yes 13
## 15 3rd Female Child Yes 14
## 16 Crew Female Child Yes 0
#arrange(titanic, Freq) mengurutkan data dari frekuensi paling kecil ke besar (ascending) → cocok kalau mau tahu kombinasi kategori dengan jumlah penumpang paling sedikit.
titanic_sorted_asc <- arrange (databaru, Freq)
head (titanic_sorted_asc)
## Class Sex Age Survived Freq
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 Crew Male Child No 0
## 4 1st Female Child No 0
## 5 2nd Female Child No 0
## 6 Crew Female Child No 0
#arrange(titanic, desc(Freq)) mengurutkan data dari frekuensi paling besar ke kecil (descending) → cocok kalau mau tahu kategori dengan jumlah penumpang paling banyak.
titanic_sorted_desc <- arrange(databaru, desc(Freq))
head(titanic_sorted_desc)
## Class Sex Age Survived Freq
## 1 Crew Male Adult No 670
## 2 3rd Male Adult No 387
## 3 Crew Male Adult Yes 192
## 4 2nd Male Adult No 154
## 5 1st Female Adult Yes 140
## 6 1st Male Adult No 118
#rename() memberi nama baru agar lebih mudah dibaca.
titanic_rename <- rename(databaru, Umur = Age)
titanic_rename
## Class Sex Umur Survived Freq
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 3rd Male Child No 35
## 4 Crew Male Child No 0
## 5 1st Female Child No 0
## 6 2nd Female Child No 0
## 7 3rd Female Child No 17
## 8 Crew Female Child No 0
## 9 1st Male Adult No 118
## 10 2nd Male Adult No 154
## 11 3rd Male Adult No 387
## 12 Crew Male Adult No 670
## 13 1st Female Adult No 4
## 14 2nd Female Adult No 13
## 15 3rd Female Adult No 89
## 16 Crew Female Adult No 3
## 17 1st Male Child Yes 5
## 18 2nd Male Child Yes 11
## 19 3rd Male Child Yes 13
## 20 Crew Male Child Yes 0
## 21 1st Female Child Yes 1
## 22 2nd Female Child Yes 13
## 23 3rd Female Child Yes 14
## 24 Crew Female Child Yes 0
## 25 1st Male Adult Yes 57
## 26 2nd Male Adult Yes 14
## 27 3rd Male Adult Yes 75
## 28 Crew Male Adult Yes 192
## 29 1st Female Adult Yes 140
## 30 2nd Female Adult Yes 80
## 31 3rd Female Adult Yes 76
## 32 Crew Female Adult Yes 20
#mutate() menambahkan kolom baru atau memodifikasi kolom lama dalam satu dataset. Kolom baru biasanya hasil dari perhitungan atau transformasi variabel. Dataset yang dipakai tetap satu dataset saja.
titanic_mutate <- mutate(databaru, Proporsi = Freq / sum(Freq))
head(titanic_mutate)
## Class Sex Age Survived Freq Proporsi
## 1 1st Male Child No 0 0.00000000
## 2 2nd Male Child No 0 0.00000000
## 3 3rd Male Child No 35 0.01590186
## 4 Crew Male Child No 0 0.00000000
## 5 1st Female Child No 0 0.00000000
## 6 2nd Female Child No 0 0.00000000
titanic_summary <- databaru %>%
group_by(Class, Survived) %>%
summarise(total = sum(Freq))
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by Class and Survived.
## ℹ Output is grouped by Class.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(Class, Survived))` for per-operation grouping
## (`?dplyr::dplyr_by`) instead.
titanic_summary
## # A tibble: 8 × 3
## # Groups: Class [4]
## Class Survived total
## <fct> <fct> <dbl>
## 1 1st No 122
## 2 1st Yes 203
## 3 2nd No 167
## 4 2nd Yes 118
## 5 3rd No 528
## 6 3rd Yes 178
## 7 Crew No 673
## 8 Crew Yes 212