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