Latihan Markdown W8

Sains Data adalah prodi baru di ITS yang baru buka di tahun 2023

Initial setup

library(ggplot2)
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
titanic = read.csv("C:/Users/ASUS/Desktop/Kulyeah/Sem2/Dataset/titanic2.csv.csv")

Jumlah data

tally(titanic)
##     n
## 1 891

Piping data

titanic %>% 
  select(1:9) %>%
  sample_n(size = 10)
##    PassengerId Survived Pclass
## 1          531        1      2
## 2          500        0      3
## 3          641        0      3
## 4          770        0      3
## 5          301        1      3
## 6           76        0      3
## 7           82        1      3
## 8          315        0      2
## 9          162        1      2
## 10         297        0      3
##                                                  Name    Sex  Age SibSp Parch
## 1                            Quick, Miss. Phyllis May female  2.0     1     1
## 2                                  Svensson, Mr. Olof   male 24.0     0     0
## 3                              Jensen, Mr. Hans Peder   male 20.0     0     0
## 4                    Gronnestad, Mr. Daniel Danielsen   male 32.0     0     0
## 5            Kelly, Miss. Anna Katherine "Annie Kate" female   NA     0     0
## 6                             Moen, Mr. Sigurd Hansen   male 25.0     0     0
## 7                         Sheerlinck, Mr. Jan Baptist   male 29.0     0     0
## 8                                  Hart, Mr. Benjamin   male 43.0     1     1
## 9  Watt, Mrs. James (Elizabeth "Bessie" Inglis Milne) female 40.0     0     0
## 10                                 Hanna, Mr. Mansour   male 23.5     0     0
##          Ticket
## 1         26360
## 2        350035
## 3        350050
## 4          8471
## 5          9234
## 6        348123
## 7        345779
## 8  F.C.C. 13529
## 9    C.A. 33595
## 10         2693

Summary 3 cara

glimpse(titanic)
## Rows: 891
## Columns: 12
## $ PassengerId <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,…
## $ Survived    <int> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1…
## $ Pclass      <int> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2, 3, 3…
## $ Name        <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradley (Fl…
## $ Sex         <chr> "male", "female", "female", "female", "male", "male", "mal…
## $ Age         <dbl> 22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20, 39, 14, …
## $ SibSp       <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0…
## $ Parch       <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0…
## $ Ticket      <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803", "37…
## $ Fare        <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51.8625,…
## $ Cabin       <chr> "", "C85", "", "C123", "", "", "E46", "", "", "", "G6", "C…
## $ Embarked    <chr> "S", "C", "S", "S", "S", "Q", "S", "S", "S", "C", "S", "S"…
str(titanic)
## 'data.frame':    891 obs. of  12 variables:
##  $ PassengerId: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Survived   : int  0 1 1 1 0 0 0 0 1 1 ...
##  $ Pclass     : int  3 1 3 1 3 3 1 3 3 2 ...
##  $ Name       : chr  "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
##  $ Sex        : chr  "male" "female" "female" "female" ...
##  $ Age        : num  22 38 26 35 35 NA 54 2 27 14 ...
##  $ SibSp      : int  1 1 0 1 0 0 0 3 0 1 ...
##  $ Parch      : int  0 0 0 0 0 0 0 1 2 0 ...
##  $ Ticket     : chr  "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
##  $ Fare       : num  7.25 71.28 7.92 53.1 8.05 ...
##  $ Cabin      : chr  "" "C85" "" "C123" ...
##  $ Embarked   : chr  "S" "C" "S" "S" ...
summary(titanic)
##   PassengerId       Survived          Pclass          Name          
##  Min.   :  1.0   Min.   :0.0000   Min.   :1.000   Length:891        
##  1st Qu.:223.5   1st Qu.:0.0000   1st Qu.:2.000   Class :character  
##  Median :446.0   Median :0.0000   Median :3.000   Mode  :character  
##  Mean   :446.0   Mean   :0.3838   Mean   :2.309                     
##  3rd Qu.:668.5   3rd Qu.:1.0000   3rd Qu.:3.000                     
##  Max.   :891.0   Max.   :1.0000   Max.   :3.000                     
##                                                                     
##      Sex                 Age            SibSp           Parch       
##  Length:891         Min.   : 0.42   Min.   :0.000   Min.   :0.0000  
##  Class :character   1st Qu.:20.12   1st Qu.:0.000   1st Qu.:0.0000  
##  Mode  :character   Median :28.00   Median :0.000   Median :0.0000  
##                     Mean   :29.70   Mean   :0.523   Mean   :0.3816  
##                     3rd Qu.:38.00   3rd Qu.:1.000   3rd Qu.:0.0000  
##                     Max.   :80.00   Max.   :8.000   Max.   :6.0000  
##                     NA's   :177                                     
##     Ticket               Fare           Cabin             Embarked        
##  Length:891         Min.   :  0.00   Length:891         Length:891        
##  Class :character   1st Qu.:  7.91   Class :character   Class :character  
##  Mode  :character   Median : 14.45   Mode  :character   Mode  :character  
##                     Mean   : 32.20                                        
##                     3rd Qu.: 31.00                                        
##                     Max.   :512.33                                        
## 

Visualisasi Data

#1. perbandingan jenis kelamin di titanic
ggplot(titanic, aes(x=Sex, fill=Sex)) +
  geom_bar() +
  labs(title="Perbandingan Jenis Kelamin Penumpang Titanic",
       x="Jenis Kelamin", y="Frekuensi") +
  scale_fill_manual(values = c("female" = 'pink', "male" = 'blue')) +
  theme(legend.position = "none")

#2. perbandingan data selamat atau tidak berdasarkan kelas
ggplot(titanic, aes(x=factor(Pclass), fill = factor(Survived))) +
  geom_bar(position = "fill") +
  labs(title="Proporsi Survival Berdasarkan Kelas",
       x="Kelas", y="Proporsi", fill="Survival")

#3. distribusi umur penumpang
ggplot(titanic, aes(x=Age)) + 
  geom_histogram(bins=20, fill='purple') + 
  labs(title="Distribusi Umur Penumpang", x="Umur", y="Frekuensi")

#4. boxplot
ggplot(titanic, aes(x=factor(Survived), y=Age, fill=factor(Survived))) +
  geom_boxplot(outlier.color='red4') +
  labs(title="Boxplot Umur Berdasarkan Survival",
       x="Survival", y="Umur", fill="Survival")

#5. scatterplot
ggplot(titanic, aes(x=Age, y=Fare)) +
  geom_point() +
  geom_smooth(method="lm", color='green') +
  labs(title="Pengaruh Umur Terhadap Harga Tiket",
       x="Umur", y="Harga Tiket")
## `geom_smooth()` using formula = 'y ~ x'