MATERI

netflix = read.csv('netflix_titles.csv')
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
custom_col = c("red", "green", "blue")
ggplot(netflix, aes(x = "", fill = factor(type))) +
  geom_bar(width = 1) +
  theme(axis.line = element_blank(),
          plot.title = element_text(hjust = 0.5, size = 22)) +
  labs(fill = "class",
        x = NULL,
        y = NULL,
        title = "Pie Chart of Netflix Shows") +
  coord_polar(theta = "y", start = 0) +
  scale_fill_manual(values = custom_col, aesthetics = "fill")

par(c(2,1))
## Warning in par(c(2, 1)): argument 1 does not name a graphical parameter
## NULL
ggplot(netflix, aes(x = "", fill = factor(type))) +
  geom_bar()

ggplot(netflix, aes(y = "", fill = factor(type))) +
  geom_bar()

# STUDI CASE

Keterangan

Pclass adalah kelas Tiket: tiket kelas pertama (1), kedua (2), dan ketiga (3) digunakan. Kami mengubahnya menjadi sebuah faktor.

Name adalah nama penumpang. Nama-nama tersebut juga mengandung gelar dan beberapa orang mungkin memiliki nama keluarga yang sama; menunjukkan hubungan kekeluargaan. Kita tahu bahwa beberapa judul dapat menunjukkan kelompok umur tertentu. Misalnya Tuan adalah laki-laki sedangkan Tuan adalah laki-laki. Fitur ini adalah string karakter dengan panjang variabel tetapi formatnya serupa.

Sex menjadi indikator apakah penumpangnya perempuan atau laki-laki. Ini adalah faktor lain yang kami buat dari string teks kategorikal.

Age adalah bilangan bulat usia penumpang. Ada nilai NaN di kolom ini.

SibSp adalah fitur bilangan bulat ordinal lainnya yang menggambarkan jumlah saudara kandung atau pasangan yang bepergian dengan setiap penumpang.

Parch adalah fitur bilangan bulat ordinal lainnya yang memberikan jumlah orang tua atau anak yang bepergian dengan setiap penumpang.

Ticket adalah string karakter dengan panjang variabel yang memberikan nomor tiket.

Fare adalah fitur mengambang yang menunjukkan berapa banyak setiap penumpang membayar untuk perjalanan mereka yang berkesan.

Cabin memberikan nomor kabin setiap penumpang. Ini adalah fitur string lainnya.

Embarked menunjukkan pelabuhan embarkasi sebagai faktor kategoris.

Load Package

library('tidyr') # data manipulation
## Warning: package 'tidyr' was built under R version 4.3.3
library('stringr') # string manipulation
## Warning: package 'stringr' was built under R version 4.3.3
library('forcats') # factor manipulation
## Warning: package 'forcats' was built under R version 4.3.3
library('modelr') # factor manipulation
## Warning: package 'modelr' was built under R version 4.3.3
library(ggplot2)

train = read.csv('train.csv')

head(train)
##   PassengerId Survived Pclass
## 1           1        0      3
## 2           2        1      1
## 3           3        1      3
## 4           4        1      1
## 5           5        0      3
## 6           6        0      3
##                                                  Name    Sex Age SibSp Parch
## 1                             Braund, Mr. Owen Harris   male  22     1     0
## 2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female  38     1     0
## 3                              Heikkinen, Miss. Laina female  26     0     0
## 4        Futrelle, Mrs. Jacques Heath (Lily May Peel) female  35     1     0
## 5                            Allen, Mr. William Henry   male  35     0     0
## 6                                    Moran, Mr. James   male  NA     0     0
##             Ticket    Fare Cabin Embarked
## 1        A/5 21171  7.2500              S
## 2         PC 17599 71.2833   C85        C
## 3 STON/O2. 3101282  7.9250              S
## 4           113803 53.1000  C123        S
## 5           373450  8.0500              S
## 6           330877  8.4583              Q
str(train)
## '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(train)
##   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                                        
## 

Data Wrangling

train$Survived = factor(train$Survived)
train$Pclass = factor(train$Pclass)
train$Embarked = factor(train$Embarked)
train$Sex = factor(train$Sex)
str(train)
## 'data.frame':    891 obs. of  12 variables:
##  $ PassengerId: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Survived   : Factor w/ 2 levels "0","1": 1 2 2 2 1 1 1 1 2 2 ...
##  $ Pclass     : Factor w/ 3 levels "1","2","3": 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        : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
##  $ 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   : Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...

Data Visualization 1 (Pie Chart)

custom_col = c("#F24957", "#F29BEC", "#0528F2")
ggplot(train, aes(x = "", fill = factor(Pclass))) +
  geom_bar(width = 1) +
  theme(axis.line = element_blank(),
          plot.title = element_text(hjust = 0.5, size = 22)) +
  labs(fill = "class",
        x = NULL,
        y = NULL,
        title = "Pie Chart of Pclass") +
  coord_polar(theta = "y", start = 0) +
  scale_fill_manual(values = custom_col, aesthetics = "fill")

Data Visualization 2 (Bar Chart)

custom_col2 = c("#F24957", "#0528F2")
p_sex = ggplot(train, mapping = aes(x = Sex, fill = Survived)) +
  geom_bar(stat='count', position='fill') +
  labs(x = 'Sex') +
  scale_fill_discrete(name="Survived") +
  scale_fill_manual(values = custom_col2, aesthetics = "fill")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
p_class = ggplot(train, mapping = aes(x = Pclass, fill = Survived, colour = Survived)) +
  geom_bar(stat='count', position='fill') +
  labs(x = 'Pclass') +
  scale_fill_discrete(name="Survived") +
  scale_fill_manual(values = custom_col2, aesthetics = "fill")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
p_emb = ggplot(train, aes(Embarked, fill = Survived)) +
  geom_bar(stat='count', position='fill') +
  labs(x = 'Embarked') +
  scale_fill_discrete(name="Survived") +
  scale_fill_manual(values = custom_col2, aesthetics = "fill")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
p_sib = ggplot(train, aes(SibSp, fill = Survived)) +
  geom_bar(stat='count', position='fill') +
  labs(x = 'SibSp') +
  scale_fill_discrete(name="Survived") +
  scale_fill_manual(values = custom_col2, aesthetics = "fill")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
p_par = ggplot(train, aes(Parch, fill = Survived)) +
  geom_bar(stat='count', position='fill') +
  labs(x = 'Parch') +
  scale_fill_discrete(name="Survived") +
  scale_fill_manual(values = custom_col2, aesthetics = "fill")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
p_sex

p_class

p_emb

p_sib

p_par

Data Visualization 3 (Line Chart)

p_age = ggplot(train) +
  geom_freqpoly(mapping = aes(x = Age, color = Survived), binwidth = 1) +
  scale_fill_discrete(name="Survived")

p_fare = ggplot(train) +
  geom_freqpoly(mapping = aes(Fare, color = Survived), binwidth = 0.05) +
  scale_x_log10() +
  scale_fill_discrete(name="Survived")

p_age
## Warning: Removed 177 rows containing non-finite outside the scale range
## (`stat_bin()`).

p_fare
## Warning in scale_x_log10(): log-10 transformation introduced infinite values.
## Warning: Removed 15 rows containing non-finite outside the scale range
## (`stat_bin()`).