Data ini awalnya dikumpulkan oleh British Board of Trade dalam penyelidikan tenggelamnya kapal Titanic. Kumpulan data ini memberikan informasi tentang nasib 2201 penumpang pada pelayaran perdana yang fatal dari kapal samudra ‘Titanic’, yang dirangkum menurut status ekonomi (Class), jenis kelamin (Sex), usia (Age) dan kelangsungan hidup (Survive).
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.3 ✓ purrr 0.3.4
## ✓ tibble 3.0.6 ✓ dplyr 1.0.2
## ✓ tidyr 1.1.1 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(datasets)
data("Titanic")
Titanic<-tibble::as_tibble(Titanic)
??Titanic
dim(Titanic)
## [1] 32 5
head(Titanic)
## # A tibble: 6 x 5
## Class Sex Age Survived n
## <chr> <chr> <chr> <chr> <dbl>
## 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
glimpse(Titanic)
## Rows: 32
## Columns: 5
## $ Class <chr> "1st", "2nd", "3rd", "Crew", "1st", "2nd", "3rd", "Crew", "1…
## $ Sex <chr> "Male", "Male", "Male", "Male", "Female", "Female", "Female"…
## $ Age <chr> "Child", "Child", "Child", "Child", "Child", "Child", "Child…
## $ Survived <chr> "No", "No", "No", "No", "No", "No", "No", "No", "No", "No", …
## $ n <dbl> 0, 0, 35, 0, 0, 0, 17, 0, 118, 154, 387, 670, 4, 13, 89, 3, …
Terlihat bahwa terdapat variabel n yang menunjukan jumlah penumpang. Maka, selanjutnya variabel tersebut akan di ganti namanya menggunakan fungsi rename. Untuk mengetahui persentase penumpang yang terdapat pada masing-masing kategori penumpang, maka akan dibuat variabel baru dengan fungsi mutate yang menyatakan pembagian dari jumlah penumpang dengan total penumpang
Titanic <- Titanic %>% rename(JumlahPenumpang = n)
Titanic <- Titanic %>% mutate(PersentasePenumpang = JumlahPenumpang/2201)
arrange(Titanic,desc(JumlahPenumpang))
## # A tibble: 32 x 6
## Class Sex Age Survived JumlahPenumpang PersentasePenumpang
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 Crew Male Adult No 670 0.304
## 2 3rd Male Adult No 387 0.176
## 3 Crew Male Adult Yes 192 0.0872
## 4 2nd Male Adult No 154 0.0700
## 5 1st Female Adult Yes 140 0.0636
## 6 1st Male Adult No 118 0.0536
## 7 3rd Female Adult No 89 0.0404
## 8 2nd Female Adult Yes 80 0.0363
## 9 3rd Female Adult Yes 76 0.0345
## 10 3rd Male Adult Yes 75 0.0341
## # … with 22 more rows
Sekarang sudah terdapat kolom persentase penumpang untuk mengetahui persentase dari jumlah penumpang di setiap kategori terhadap total penumpang. Untuk lebih mudah melihat kategori mana yang memiliki jumlah penumpang terbanyak bisa menggunakan fungsi desc seperti pada sintaks diatas. Fungsi desc akan mengurutkan dari nilai yang terbesar hingga terkecil. Diperoleh penumpang dengan kategori laki-laki dewasa dengan kelas crew memiliki jumlah penumpang terbanyak yaitu sebesar 670 penumpang dengan persentase penumpang terhadap total penumpang adalah 30,4%
Kita akan melihat jumlah penumpang yang selamat dengan membuat peubah tersebut sebagai peubah baru JumlahSelamat menggunakan fungsi mutate. Jika kita hanya ingin melihat keberlangsungan hidup (Survive) kategori penumpang (Class, Sex, Age) dengan jumlah penumpang yang selamat (JumlahSelamat) maka gunakan fungsi select. Fungsi select akan mengambil beberapa kolom sesuai yang kita inginkan. Untuk melihat kategori penumpang yang memiliki jumlah penumpang selamat lebih dari 100 penumpang, dapat menggunakan fungsi filter. Fungsi filter akan membatasi nilai kolom sesuai yang kita tentukan. Lalu, untuk melihat total penumpang yang selamat beserta total jumlah penumpang dapat menggunakan fungsi summarize. Fungsi summarize akan merangkum data sesuai yang kita inginkan.
Titanic <- Titanic %>% mutate(JumlahSelamat = ifelse(Survived=='Yes',1*JumlahPenumpang,0))
select(Titanic, Survived,Class, Sex, Age,JumlahSelamat)
## # A tibble: 32 x 5
## Survived Class Sex Age JumlahSelamat
## <chr> <chr> <chr> <chr> <dbl>
## 1 No 1st Male Child 0
## 2 No 2nd Male Child 0
## 3 No 3rd Male Child 0
## 4 No Crew Male Child 0
## 5 No 1st Female Child 0
## 6 No 2nd Female Child 0
## 7 No 3rd Female Child 0
## 8 No Crew Female Child 0
## 9 No 1st Male Adult 0
## 10 No 2nd Male Adult 0
## # … with 22 more rows
filter(Titanic, JumlahSelamat>100)
## # A tibble: 2 x 7
## Class Sex Age Survived JumlahPenumpang PersentasePenumpang JumlahSelamat
## <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 Crew Male Adult Yes 192 0.0872 192
## 2 1st Female Adult Yes 140 0.0636 140
Titanic %>%
summarize(TotalPenumpang=sum(JumlahPenumpang),TotalSelamat=sum(JumlahSelamat))
## # A tibble: 1 x 2
## TotalPenumpang TotalSelamat
## <dbl> <dbl>
## 1 2201 711
Titanic%>%
select(Survived,Class, Sex, Age, JumlahSelamat) %>%
filter(JumlahSelamat %in% 1:1101) %>% arrange(desc(JumlahSelamat))
## # A tibble: 14 x 5
## Survived Class Sex Age JumlahSelamat
## <chr> <chr> <chr> <chr> <dbl>
## 1 Yes Crew Male Adult 192
## 2 Yes 1st Female Adult 140
## 3 Yes 2nd Female Adult 80
## 4 Yes 3rd Female Adult 76
## 5 Yes 3rd Male Adult 75
## 6 Yes 1st Male Adult 57
## 7 Yes Crew Female Adult 20
## 8 Yes 3rd Female Child 14
## 9 Yes 2nd Male Adult 14
## 10 Yes 3rd Male Child 13
## 11 Yes 2nd Female Child 13
## 12 Yes 2nd Male Child 11
## 13 Yes 1st Male Child 5
## 14 Yes 1st Female Child 1
Sintaks diatas untuk mengetahui kategori penumpang yang memiliki jumlah penumpang selamat diantara 1 sampai 1101 atau setengah dari total penumpang 2201, yang kemudian jumlah penumpang selamat tersebut diurutkan dari yang terbesar hingga terkecil. Diperoleh terdapat 14 kategori penumpang yang memiliki jumlah penumpang selamat diantara 1 sampai 1101 atau setengah dari total penumpang 2201.
Titanic1st <- Titanic %>% select(Survived,Class, Sex, Age, JumlahSelamat,JumlahPenumpang) %>% filter(Class=="1st") %>% arrange(desc(JumlahSelamat))
Titanic1st
## # A tibble: 8 x 6
## Survived Class Sex Age JumlahSelamat JumlahPenumpang
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 Yes 1st Female Adult 140 140
## 2 Yes 1st Male Adult 57 57
## 3 Yes 1st Male Child 5 5
## 4 Yes 1st Female Child 1 1
## 5 No 1st Male Child 0 0
## 6 No 1st Female Child 0 0
## 7 No 1st Male Adult 0 118
## 8 No 1st Female Adult 0 4
Titanic1st %>% summarize(TotalPenumpang=sum(JumlahPenumpang),TotalSelamat=sum(JumlahSelamat))
## # A tibble: 1 x 2
## TotalPenumpang TotalSelamat
## <dbl> <dbl>
## 1 325 203
Sintaks diatas untuk mengetahui jumlah penumpang selamat beserta jumlah penumpang dari kategori penumpang dengan kelas pertama (Class 1st) yang kemudian jumlah penumpang selamat tersebut diurutkan dari yang terbesar hingga terkecil. Setelah itu, terlihat juga untuk total jumlah penumpang selamat beserta total jumlah penumpang dari kategori penumpang dengan kelas pertama (Class 1st) adalah sebesar 203 dan 325
TitanicMale <- Titanic %>% select(Survived,Class, Sex, Age, JumlahSelamat,JumlahPenumpang) %>% filter(Sex=="Male") %>% arrange(desc(JumlahSelamat))
TitanicMale
## # A tibble: 16 x 6
## Survived Class Sex Age JumlahSelamat JumlahPenumpang
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 Yes Crew Male Adult 192 192
## 2 Yes 3rd Male Adult 75 75
## 3 Yes 1st Male Adult 57 57
## 4 Yes 2nd Male Adult 14 14
## 5 Yes 3rd Male Child 13 13
## 6 Yes 2nd Male Child 11 11
## 7 Yes 1st Male Child 5 5
## 8 No 1st Male Child 0 0
## 9 No 2nd Male Child 0 0
## 10 No 3rd Male Child 0 35
## 11 No Crew Male Child 0 0
## 12 No 1st Male Adult 0 118
## 13 No 2nd Male Adult 0 154
## 14 No 3rd Male Adult 0 387
## 15 No Crew Male Adult 0 670
## 16 Yes Crew Male Child 0 0
TitanicMale %>% summarize(TotalPenumpang=sum(JumlahPenumpang),TotalSelamat=sum(JumlahSelamat))
## # A tibble: 1 x 2
## TotalPenumpang TotalSelamat
## <dbl> <dbl>
## 1 1731 367
Sintaks diatas untuk mengetahui jumlah penumpang selamat beserta jumlah penumpang dari kategori penumpang pada jenis kelamin laki-laki (Sex = Male) yang kemudian jumlah penumpang selamat tersebut diurutkan dari yang terbesar hingga terkecil. Setelah itu, terlihat juga untuk total jumlah penumpang selamat beserta total jumlah penumpang dari kategori penumpang pada jenis kelamin laki-laki (Sex = Male) adalah sebesar 367 dan 1731
TitanicChild <- Titanic %>% select(Survived,Class, Sex, Age, JumlahSelamat,JumlahPenumpang) %>% filter(Age=="Child") %>% arrange(desc(JumlahSelamat))
TitanicChild
## # A tibble: 16 x 6
## Survived Class Sex Age JumlahSelamat JumlahPenumpang
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 Yes 3rd Female Child 14 14
## 2 Yes 3rd Male Child 13 13
## 3 Yes 2nd Female Child 13 13
## 4 Yes 2nd Male Child 11 11
## 5 Yes 1st Male Child 5 5
## 6 Yes 1st Female Child 1 1
## 7 No 1st Male Child 0 0
## 8 No 2nd Male Child 0 0
## 9 No 3rd Male Child 0 35
## 10 No Crew Male Child 0 0
## 11 No 1st Female Child 0 0
## 12 No 2nd Female Child 0 0
## 13 No 3rd Female Child 0 17
## 14 No Crew Female Child 0 0
## 15 Yes Crew Male Child 0 0
## 16 Yes Crew Female Child 0 0
TitanicChild %>% summarize(TotalPenumpang=sum(JumlahPenumpang),TotalSelamat=sum(JumlahSelamat))
## # A tibble: 1 x 2
## TotalPenumpang TotalSelamat
## <dbl> <dbl>
## 1 109 57
Sintaks diatas untuk mengetahui jumlah penumpang selamat beserta jumlah penumpang dari kategori penumpang pada anak-anak (Age = Child) yang kemudian jumlah penumpang selamat tersebut diurutkan dari yang terbesar hingga terkecil. Setelah itu, terlihat juga untuk total jumlah penumpang selamat beserta total jumlah penumpang dari kategori penumpang pada anak-anak (Age = Child) adalah sebesar 57 dan 109