Atividade infosoc 3.4

1 - Reproduza todos os códigos que estão na apresentação e publique o resultado como um documento Rpubs.

df_titanic <- read.csv('http://www.populacoes.info/df/titanic.csv')
head(df_titanic)
##   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
# Ou

head(df_titanic[c("Sex","Pclass","Survived")])
##      Sex Pclass Survived
## 1   male      3        0
## 2 female      1        1
## 3 female      3        1
## 4 female      1        1
## 5   male      3        0
## 6   male      3        0

Selecionar casos apenas de sobriviventes por sexo e classe

head(df_titanic[df_titanic$Survived == 1,
             c("Sex","Pclass")])
##       Sex Pclass
## 2  female      1
## 3  female      3
## 4  female      1
## 9  female      3
## 10 female      2
## 11 female      3

Usando a função subset()

head(
  subset(df_titanic,
         subset = Survived == 1,
         select = c(Sex, Pclass)))
##       Sex Pclass
## 2  female      1
## 3  female      3
## 4  female      1
## 9  female      3
## 10 female      2
## 11 female      3

Selecionar e recodificar e casos com o pacote {dplyr} parte do {tidyverse}:

df_titanic %>%
  select(Sex, Pclass, Survived, Age) %>%
  mutate(Sex = as.factor(recode(Sex,
                                female = 'feminino',
                                male   = 'masculino'))) %>%
  mutate(Pclass = as.factor(recode(Pclass,
                                   `1` = '1ª classe',
                                   `2` = '2ª classe',
                                   `3` = '3ª classe'))) %>%
  mutate(Survived = as.factor(recode(Survived,
                                     `0` = 'faleceram',
                                     `1` = 'sobreviveram'))) %>%
  rename(Sexo = Sex) %>%
  rename(Classe = Pclass) %>%
  rename(Idade = Age) %>%
  rename(Sobreviventes = Survived) -> tb_titanic_sel1
  head(tb_titanic_sel1)
##        Sexo    Classe Sobreviventes Idade
## 1 masculino 3ª classe     faleceram    22
## 2  feminino 1ª classe  sobreviveram    38
## 3  feminino 3ª classe  sobreviveram    26
## 4  feminino 1ª classe  sobreviveram    35
## 5 masculino 3ª classe     faleceram    35
## 6 masculino 3ª classe     faleceram    NA

Qual a média de idade dos sobreviventes e dos falecidos no naufrágio?

tb_titanic_sel1 %>%
  group_by(Sobreviventes) %>%
  summarise(média = mean(Idade), total = n())
## # A tibble: 2 x 3
##   Sobreviventes média total
##   <fct>         <dbl> <int>
## 1 faleceram        NA   549
## 2 sobreviveram     NA   342

Eliminando os casos omissos

tb_titanic_sel1 %>%
  group_by(Sobreviventes) %>%
  na.omit() %>%
  summarise(média = mean(Idade), total = n())
## # A tibble: 2 x 3
##   Sobreviventes média total
##   <fct>         <dbl> <int>
## 1 faleceram      30.6   424
## 2 sobreviveram   28.3   290

Qual a média dos passageiros por sexo?

tb_titanic_sel1 %>%
  group_by(Sexo) %>%
  na.omit() %>%
  summarise(média = mean(Idade), total = n())
## # A tibble: 2 x 3
##   Sexo      média total
##   <fct>     <dbl> <int>
## 1 feminino   27.9   261
## 2 masculino  30.7   453

Qual a média entre sobreiventes e falecidos por sexo?

  tb_titanic_sel1 %>%
  group_by(Sexo, Sobreviventes) %>%
  na.omit() %>%
  summarise(Média = mean(Idade), Total = n())
## `summarise()` has grouped output by 'Sexo'. You can override using the
## `.groups` argument.
## # A tibble: 4 x 4
## # Groups:   Sexo [2]
##   Sexo      Sobreviventes Média Total
##   <fct>     <fct>         <dbl> <int>
## 1 feminino  faleceram      25.0    64
## 2 feminino  sobreviveram   28.8   197
## 3 masculino faleceram      31.6   360
## 4 masculino sobreviveram   27.3    93

Quais as idades máximas e mínimas entre sobreviventes e falecidos por sexo?

  tb_titanic_sel1 %>%
    group_by(Sexo, Sobreviventes) %>%
    na.omit() %>%
    summarise(Idade_máxima = max(Idade),
              Idade_mínima = min(Idade))
## `summarise()` has grouped output by 'Sexo'. You can override using the
## `.groups` argument.
## # A tibble: 4 x 4
## # Groups:   Sexo [2]
##   Sexo      Sobreviventes Idade_máxima Idade_mínima
##   <fct>     <fct>                <dbl>        <dbl>
## 1 feminino  faleceram               57         2   
## 2 feminino  sobreviveram            63         0.75
## 3 masculino faleceram               74         1   
## 4 masculino sobreviveram            80         0.42

Qual a idade média dos sobreviventes e falecidos por Classe

  tb_titanic_sel1 %>%
    group_by(Classe) %>%
    na.omit() %>%
    summarise(Média = mean(Idade), Total = n())
## # A tibble: 3 x 3
##   Classe    Média Total
##   <fct>     <dbl> <int>
## 1 1ª classe  38.2   186
## 2 2ª classe  29.9   173
## 3 3ª classe  25.1   355
  tb_titanic_sel1 %>%
    group_by(Sobreviventes, Classe) %>%
    na.omit() %>%
    summarise(Média = mean(Idade), Total = n())
## `summarise()` has grouped output by 'Sobreviventes'. You can override using the
## `.groups` argument.
## # A tibble: 6 x 4
## # Groups:   Sobreviventes [2]
##   Sobreviventes Classe    Média Total
##   <fct>         <fct>     <dbl> <int>
## 1 faleceram     1ª classe  43.7    64
## 2 faleceram     2ª classe  33.5    90
## 3 faleceram     3ª classe  26.6   270
## 4 sobreviveram  1ª classe  35.4   122
## 5 sobreviveram  2ª classe  25.9    83
## 6 sobreviveram  3ª classe  20.6    85

2 - Acrescente outras combinações, sumários e seleção de casos conforme sua curiosidade. Faça perguntas e tente responder com os dados. Por exemplo, quantas pessoas faleceram acima e abaixo de 30 anos? Quantas sobreviveram nessa faixa etária? Na primeira classe havia mais mulheres ou homens? e na terceira classe? Faça as perguntas que desejar para explorar as funções do {dplyr} e a base de registros do naufrágio do Titanic. Publique o resultado em Rpubs (não se esqueça de colocar o seu nome no cabeçalho e informar que se trata de um exercício do Programa de Formação InfoSoc - UEL).

Sobreviventes por faixa etária

  tb_titanic_sel1 %>%
    group_by(Idade, Sobreviventes) %>%
    na.omit() %>%

    summarise(Média = mean(Idade))
## `summarise()` has grouped output by 'Idade'. You can override using the
## `.groups` argument.
## # A tibble: 142 x 3
## # Groups:   Idade [88]
##    Idade Sobreviventes Média
##    <dbl> <fct>         <dbl>
##  1  0.42 sobreviveram   0.42
##  2  0.67 sobreviveram   0.67
##  3  0.75 sobreviveram   0.75
##  4  0.83 sobreviveram   0.83
##  5  0.92 sobreviveram   0.92
##  6  1    faleceram      1   
##  7  1    sobreviveram   1   
##  8  2    faleceram      2   
##  9  2    sobreviveram   2   
## 10  3    faleceram      3   
## # ... with 132 more rows

Idade menor que 30 anos

  tb_titanic_sel1 %>%
    group_by(Sexo, Classe) %>%
    na.omit() %>%
    summarise(Idade < 30)
## `summarise()` has grouped output by 'Sexo', 'Classe'. You can override using
## the `.groups` argument.
## # A tibble: 714 x 3
## # Groups:   Sexo, Classe [6]
##    Sexo     Classe    `Idade < 30`
##    <fct>    <fct>     <lgl>       
##  1 feminino 1ª classe FALSE       
##  2 feminino 1ª classe FALSE       
##  3 feminino 1ª classe FALSE       
##  4 feminino 1ª classe FALSE       
##  5 feminino 1ª classe FALSE       
##  6 feminino 1ª classe TRUE        
##  7 feminino 1ª classe TRUE        
##  8 feminino 1ª classe TRUE        
##  9 feminino 1ª classe FALSE       
## 10 feminino 1ª classe FALSE       
## # ... with 704 more rows