1

Carga el archivo suministrado titanic.cvs

library(readr)
library(dplyr)
titanic2 <- read_csv("titanic (1).csv")
DT::datatable(titanic2)
sapply(titanic2, function(x) sum(is.na(x)))
## PassengerId    Survived      Pclass        Name         Sex         Age 
##           0           0           0           0           0         177 
##       SibSp       Parch      Ticket        Fare       Cabin    Embarked 
##           0           0           0           0         687           2
str(titanic2)
## spec_tbl_df [891 × 12] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ PassengerId: num [1:891] 1 2 3 4 5 6 7 8 9 10 ...
##  $ Survived   : num [1:891] 0 1 1 1 0 0 0 0 1 1 ...
##  $ Pclass     : num [1:891] 3 1 3 1 3 3 1 3 3 2 ...
##  $ Name       : chr [1:891] "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
##  $ Sex        : chr [1:891] "male" "female" "female" "female" ...
##  $ Age        : num [1:891] 22 38 26 35 35 NA 54 2 27 14 ...
##  $ SibSp      : num [1:891] 1 1 0 1 0 0 0 3 0 1 ...
##  $ Parch      : num [1:891] 0 0 0 0 0 0 0 1 2 0 ...
##  $ Ticket     : chr [1:891] "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
##  $ Fare       : num [1:891] 7.25 71.28 7.92 53.1 8.05 ...
##  $ Cabin      : chr [1:891] NA "C85" NA "C123" ...
##  $ Embarked   : chr [1:891] "S" "C" "S" "S" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   PassengerId = col_double(),
##   ..   Survived = col_double(),
##   ..   Pclass = col_double(),
##   ..   Name = col_character(),
##   ..   Sex = col_character(),
##   ..   Age = col_double(),
##   ..   SibSp = col_double(),
##   ..   Parch = col_double(),
##   ..   Ticket = col_character(),
##   ..   Fare = col_double(),
##   ..   Cabin = col_character(),
##   ..   Embarked = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

2

Calcular y mostrar el valor de la media y la mediana de las edades de las personas que viajaban en el barco y sobrevivieron

sobrevivieron= titanic2 %>% filter(Survived=="1")
str(sobrevivieron)
## spec_tbl_df [342 × 12] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ PassengerId: num [1:342] 2 3 4 9 10 11 12 16 18 20 ...
##  $ Survived   : num [1:342] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Pclass     : num [1:342] 1 3 1 3 2 3 1 2 2 3 ...
##  $ Name       : chr [1:342] "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" "Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)" ...
##  $ Sex        : chr [1:342] "female" "female" "female" "female" ...
##  $ Age        : num [1:342] 38 26 35 27 14 4 58 55 NA NA ...
##  $ SibSp      : num [1:342] 1 0 1 0 1 1 0 0 0 0 ...
##  $ Parch      : num [1:342] 0 0 0 2 0 1 0 0 0 0 ...
##  $ Ticket     : chr [1:342] "PC 17599" "STON/O2. 3101282" "113803" "347742" ...
##  $ Fare       : num [1:342] 71.28 7.92 53.1 11.13 30.07 ...
##  $ Cabin      : chr [1:342] "C85" NA "C123" NA ...
##  $ Embarked   : chr [1:342] "C" "S" "S" "S" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   PassengerId = col_double(),
##   ..   Survived = col_double(),
##   ..   Pclass = col_double(),
##   ..   Name = col_character(),
##   ..   Sex = col_character(),
##   ..   Age = col_double(),
##   ..   SibSp = col_double(),
##   ..   Parch = col_double(),
##   ..   Ticket = col_character(),
##   ..   Fare = col_double(),
##   ..   Cabin = col_character(),
##   ..   Embarked = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
sobrevivieron$Age[is.na(sobrevivieron$Age)] <- 28
sobrevivieron
## # A tibble: 342 × 12
##    PassengerId Survived Pclass Name   Sex     Age SibSp Parch Ticket  Fare Cabin
##          <dbl>    <dbl>  <dbl> <chr>  <chr> <dbl> <dbl> <dbl> <chr>  <dbl> <chr>
##  1           2        1      1 Cumin… fema…    38     1     0 PC 17… 71.3  C85  
##  2           3        1      3 Heikk… fema…    26     0     0 STON/…  7.92 <NA> 
##  3           4        1      1 Futre… fema…    35     1     0 113803 53.1  C123 
##  4           9        1      3 Johns… fema…    27     0     2 347742 11.1  <NA> 
##  5          10        1      2 Nasse… fema…    14     1     0 237736 30.1  <NA> 
##  6          11        1      3 Sands… fema…     4     1     1 PP 95… 16.7  G6   
##  7          12        1      1 Bonne… fema…    58     0     0 113783 26.6  C103 
##  8          16        1      2 Hewle… fema…    55     0     0 248706 16    <NA> 
##  9          18        1      2 Willi… male     28     0     0 244373 13    <NA> 
## 10          20        1      3 Masse… fema…    28     0     0 2649    7.22 <NA> 
## # … with 332 more rows, and 1 more variable: Embarked <chr>
mean(sobrevivieron$Age)
## [1] 28.29143
median(sobrevivieron$Age)
## [1] 28

3

Mostrar la cantidad de personas que viajaban en el barco en cada una de las tres clases.

pcass=titanic2 %>% count(Pclass)
pcass
## # A tibble: 3 × 2
##   Pclass     n
##    <dbl> <int>
## 1      1   216
## 2      2   184
## 3      3   491
library(ggplot2)
ggplot(titanic2, aes(Pclass))+
  geom_bar(fill=rgb(0.1,1,0.5,0.7))

4

Mostrar la cantidad de personas que viajaban en el barco en cada una de las tres clases dicriminando por sobrevivientes y no sobrevivientes.

titanic2 %>% group_by (Pclass,Survived) %>% summarise(count_sales = n())
## `summarise()` has grouped output by 'Pclass'. You can override using the
## `.groups` argument.
## # A tibble: 6 × 3
## # Groups:   Pclass [3]
##   Pclass Survived count_sales
##    <dbl>    <dbl>       <int>
## 1      1        0          80
## 2      1        1         136
## 3      2        0          97
## 4      2        1          87
## 5      3        0         372
## 6      3        1         119

5

Calular y mostrar el valor del tiquete más ecónomico, más costoso y el valor promedio.

#valor minimo
min(titanic2$Fare)
## [1] 0
#valor maximo
max(titanic2$Fare)
## [1] 512.3292
#valor promedio
mean(titanic2$Fare)
## [1] 32.20421

6

Realice un diagrama de barras (barplot) que permita visualizar la cantidad de personas por género.

ggplot(titanic2, aes(Sex))+
  geom_bar(fill=10)

7

Realice un diagrama de barras (barplot) que permita visualizar la cantidad de personas por tipo de tiquete.

ggplot(titanic2, aes(x=Ticket))+
  geom_bar(fill=5)

8

Realice un diagrama de caja (boxplot) con los datos de las edades. ¿Cuál es su interpretación a lovisualizado en el gráfico?

fig=ggplot(titanic2, aes(y=Age))+
  geom_boxplot(fill=15)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
ggplotly(fig)
## Warning: Removed 177 rows containing non-finite values (stat_boxplot).

##INTERPRETACIÓN: en el cuartil 1(25%) de los datos, podemos observar que los pasajeron a bordo eran menores de 22 años, 50% de los datos se encuentran entre los 22 y 35 años, la persona mas joven que abordo el barco tenia 0.42 años y la mas longeva tenia 80 años de edad, adicional se consideran edades atipicas desde los 55 años en adelante y menores a 2 años de edad.

9

Para cada una de las variables muestre el consolidado de la siguiente información: valor mínimo, primer cuartil, promedio, tercer cuartil y valor máximo. Recuerde se requiere para cada variable.

summary(titanic2)
##   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                                        
## 

REFERENCIAS

-Giorgio Boccardo Bosoni y Felipe Ruiz Bruzzone, (2019-07-03), Capítulo 8 Construcción de gráficos usando RStudio: funcionalidades básicas y uso del paquete ggplot2 Ejercicio 8.8 https://bookdown.org/gboccardo/manual-ED-UCH/construccion-de-graficos-usando-rstudio-funcionalidades-basicas-y-uso-del-paquete-ggplot2.html

-delftstack, (April-26, 2021), Reemplazar NA con cero en R https://www.delftstack.com/es/howto/r/replace-na-with-0-in-r/

-Hadley Wickham , Romain François , Lionel Henry , Kirill Müller, contar observaciones por grupo https://dplyr.tidyverse.org/reference/count.html

-data science made simple, (2022), GROUPBY COUNT IN R https://www.datasciencemadesimple.com/groupby-count-in-r-2/