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