dataweek4<-data.frame(datasets::Titanic)
dataweek4
## 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
str(Titanic)
## 'table' num [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ...
## - attr(*, "dimnames")=List of 4
## ..$ Class : chr [1:4] "1st" "2nd" "3rd" "Crew"
## ..$ Sex : chr [1:2] "Male" "Female"
## ..$ Age : chr [1:2] "Child" "Adult"
## ..$ Survived: chr [1:2] "No" "Yes"
colSums(is.na(Titanic))
## , , Survived = No
##
## Age
## Sex Child Adult
## Male 0 0
## Female 0 0
##
## , , Survived = Yes
##
## Age
## Sex Child Adult
## Male 0 0
## Female 0 0
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_selected<-select(dataweek4, Class, Sex, Age, Survived)
head(titanic_selected)
## Class Sex Age Survived
## 1 1st Male Child No
## 2 2nd Male Child No
## 3 3rd Male Child No
## 4 Crew Male Child No
## 5 1st Female Child No
## 6 2nd Female Child No
titanic_child<-filter(dataweek4, Age =="Child")
head(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
titanic_sorted_asc<-arrange(dataweek4, 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
titanic_sorted_desc<-arrange(dataweek4, 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
titanic_rename<-rename(dataweek4, Gender=Sex)
titanic_rename
## Class Gender 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
titanic_mutate<-mutate(titanic_rename, Proporsi=Freq/sum(Freq))
head(titanic_mutate)
## Class Gender 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
extra<-data.frame(
Class=c("1st","2nd","3rd","Crew"),
Room=c("Exclusive","VVIP","VIP","Ordinary")
)
titanic_joined<-left_join(titanic_rename, extra, by="Class")
head(titanic_joined,10)
## Class Gender Age Survived Freq Room
## 1 1st Male Child No 0 Exclusive
## 2 2nd Male Child No 0 VVIP
## 3 3rd Male Child No 35 VIP
## 4 Crew Male Child No 0 Ordinary
## 5 1st Female Child No 0 Exclusive
## 6 2nd Female Child No 0 VVIP
## 7 3rd Female Child No 17 VIP
## 8 Crew Female Child No 0 Ordinary
## 9 1st Male Adult No 118 Exclusive
## 10 2nd Male Adult No 154 VVIP
titanic_summary <- titanic_rename %>%
group_by(Age, Gender, Survived) %>%
summarise(total = sum(Freq))
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by Age, Gender, and Survived.
## ℹ Output is grouped by Age and Gender.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(Age, Gender, Survived))` for per-operation grouping
## (`?dplyr::dplyr_by`) instead.
head(titanic_summary, 20)
## # A tibble: 8 × 4
## # Groups: Age, Gender [4]
## Age Gender Survived total
## <fct> <fct> <fct> <dbl>
## 1 Child Male No 35
## 2 Child Male Yes 29
## 3 Child Female No 17
## 4 Child Female Yes 28
## 5 Adult Male No 1329
## 6 Adult Male Yes 338
## 7 Adult Female No 109
## 8 Adult Female Yes 316
set.seed(123)
index <- sample(1:nrow(titanic_rename), 0.8*nrow(titanic_rename))
train_data <- titanic_rename[index, ]
test_data <- titanic_rename[-index, ]
nrow(train_data); nrow(test_data)
## [1] 25
## [1] 7