Package Tidyverse dengan Datasets Titanic

Az Zahra Amon Ra

2/18/2021

Link Rpubs: https://rpubs.com/azzahramonra/PackageTidyversedenganDatasetsTitanic

Sekilas tentang data Titanic

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).

Pertama-tama, silahkan load package tidyverse dan datasets Titanic dengan sintaks berikut
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)
Selanjutnya, lakukan eksplorasi data untuk melihat dimensi data, gambaran umum data Titanic, beserta tipe data dari masing-masing variabelnya
??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

Setelah itu, gunakan fungsi mutate dan rename untuk melakukan hal tersebut
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%

Kemudian gunakan fungsi select, summarize, filter, mutate untuk memperoleh informasi

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
Selanjutnya kita dapat menggunakan fungsi select, filter, dan arrange juga untuk memperoleh informasi
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.

Setelah itu, kita dapat menggunakan fungsi select, summarize, dan arrage juga untuk memperoleh informasi pada kelas pertama (Class 1st)
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

Kemudian kita dapat menggunakan fungsi select,filter, dan arrage juga untuk memperoleh informasi pada jenis kelamin laki-laki (Sex = Male)
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

Terakhir kita dapat menggunakan fungsi select,filter, dan arrage juga untuk memperoleh informasi pada anak-anak
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