O objetivo dessa atividade é fazer uma introdução ao universo tidyverse.

Como você sabe, precisamos utilizar as ferramentas do universo tidyverse ao longo do curso para analisar dados e também para aprender os conceitos estatísticos discutidos nos livros de uma forma aplicada. Ao final dessa atividade, espero-se que você saiba:

Manipular uma base de dados com o operador %>%,
Usar o Dplyr para calcuar uma média por categoria,
Fazer o cruzamento de uma variável categórica com uma variável quantitativa em qualquer base de dados no R.


Os dados: CARROS e POKEMON

O banco de dados CARROS.RData é uma tradução livre da base de dados mtcars.

O banco de dados POKEMON.RData tem diversas informações sobre cada Pokemon.

Tanto a base de dados CARROS.RData quanto a base de dados POKEMON.RData podem ser encontradas aqui . Para fazer o download, você precisa clicar no Botão verde chamado “Clone or Download”. Depois disso, você precisa clicar na aba “Download ZIP”. Após essa etapa, o Download das bases de dados (no formato ZIP, isto é compactado) deve iniciar. Você deve extrair todos os arquivos antes de importar para o R.

Após essa etapa, precisamos carregar as duas bases de dados. O comando para isso tem quer ser algo parecido com esse. Para o código aparecer, clique em code.

A base de dados CARROS tem um dicionário de dados junto com os dados. Para entender o que representa cada variável você escrever:

##  [1] "Km por litro"                                                                
##  [2] "Número de Cilindros"                                                         
##  [3] "Preço"                                                                       
##  [4] "HP = Horse Power (potência do motor)"                                        
##  [5] "Amperagem_circ_eletrico = Amperagem média (o principal indicador da bateria)"
##  [6] "Peso (em toneladas) do Carro"                                                
##  [7] "RPM = Rotações Por Minuto"                                                   
##  [8] "Tipo de combustível (0 = Gasolina, 1 = Álcool)"                              
##  [9] "Tipo de Câmbio (0 = Automático, 1 = Manual)"                                 
## [10] "Número de Marchas"                                                           
## [11] "Número de Válvulas"

Lembrete: A base de dados CARROS precisa tratar as variáveis

TipodeMarcha e Tipodecombustivel. Essas variáveis têm o mesmo

problema (qualitativa tratada como quantitativa) que precisa ser corrigido

(corrigimos isso na aula passada).

Para Fazer a média do HP (Horse Power) por Tipo de combustível. Precisamos fazer o seguinte comando:

## # A tibble: 2 x 2
##   Tipodecombustivel media_HP
##   <fct>                <dbl>
## 1 Gasolina             190. 
## 2 Álcool                91.4

Para fazer a média do HP e do Km/l simultaneamente por Tipo de combustível. Precisamos fazer o seguinte comando:

## # A tibble: 2 x 3
##   Tipodecombustivel media_HP media_Kmporlitro
##   <fct>                <dbl>            <dbl>
## 1 Gasolina             190.              16.6
## 2 Álcool                91.4             24.6
  1. Responda: Você consegue indentificar quais são as variáveis quantitativas e qual é a variável qualitativa?
  2. Faça a média por Tipo de combustível das seguintes variáveis: HP, Km/l e preço.
  3. Faça a média por Tipo de marcha das seguintes variáveis: HP, Km/l e preço.

Para o banco de dados Pokemon podemos fazer algo parecido.

Identificando as variáveis:

##  [1] "id"              "pokemon"         "species_id"     
##  [4] "height"          "weight"          "base_experience"
##  [7] "type_1"          "type_2"          "attack"         
## [10] "defense"         "hp"              "special_attack" 
## [13] "special_defense" "speed"           "color_1"        
## [16] "color_2"         "color_f"         "egg_group_1"    
## [19] "egg_group_2"     "url_image"       "x"              
## [22] "y"
## [1] "character"

Utilizando o dplyr para o cruzamento de variáveis:

## # A tibble: 18 x 3
##    type_1   media_attack media_defesa
##    <chr>           <dbl>        <dbl>
##  1 bug              65.2         67.7
##  2 dark             86.2         67.9
##  3 dragon          103.          79.1
##  4 electric         67.8         59.1
##  5 fairy            61.5         65.7
##  6 fighting         94.7         64.3
##  7 fire             81.6         63.7
##  8 flying           71.7         61.7
##  9 ghost            66.7         76.8
## 10 grass            70.9         69.4
## 11 ground           91.3         82.2
## 12 ice              70.7         71.0
## 13 normal           71.7         57.8
## 14 poison           74.7         68.8
## 15 psychic          60.2         65.2
## 16 rock             88.2         98.5
## 17 steel            83.5        119. 
## 18 water            71.0         70.5

No R, observe que você precisa estar consciente da ordem de operações.

  1. Fazer o mesmo para variável type_2
  2. Colocar duas outras variaveis quantitativas do banco de dados

Se você quiser trocar a média pela mediana, é só trocar o comando mean por median. O código é apresentado abaixo.

## # A tibble: 18 x 3
##    type_1   mediana_attack mediana_defesa
##    <chr>             <dbl>          <dbl>
##  1 bug                63             55  
##  2 dark               86.5           67.5
##  3 dragon             97.5           85  
##  4 electric           61.5           58.5
##  5 fairy              52             66  
##  6 fighting          100             62  
##  7 fire               82.5           59  
##  8 flying             70             70  
##  9 ghost              65             65  
## 10 grass              68             65  
## 11 ground             83.5           82  
## 12 ice                65             70  
## 13 normal             70             60  
## 14 poison             74             67  
## 15 psychic            52.5           62.5
## 16 rock               86.5           98.5
## 17 steel              82.5          116. 
## 18 water              70             68
  1. Fazer um resumo com a média e a mediana do ataque e defesa.
  2. Fazer um resumo com a média e o desvio padrão do ataque e defesa.
  3. Fazer um resumo com o minimo, a mediana, o IQR, a média e o desvio padrão e o máximo
## # A tibble: 18 x 7
##    type_1 minimo_attack media_attack desvio_padrao mediana_attack
##    <chr>          <int>        <dbl>         <dbl>          <dbl>
##  1 bug               10         63            30.7           63  
##  2 dark              50         86.5          24.3           86.5
##  3 dragon            50         97.5          29.6           97.5
##  4 elect~            30         61.5          25.2           61.5
##  5 fairy             20         52            29.8           52  
##  6 fight~            35        100            27.7          100  
##  7 fire              40         82.5          25.3           82.5
##  8 flying            30         70            42.5           70  
##  9 ghost             30         65            25.3           65  
## 10 grass             27         68            24.1           68  
## 11 ground            40         83.5          28.6           83.5
## 12 ice               30         65            25.9           65  
## 13 normal             5         70            29.3           70  
## 14 poison            43         74            19.6           74  
## 15 psych~            20         52.5          30.8           52.5
## 16 rock              40         86.5          32.6           86.5
## 17 steel             24         82.5          24.6           82.5
## 18 water             10         70            25.0           70  
## # ... with 2 more variables: IQR_attack <dbl>, maximo_attack <int>

  1. Fazer um resumo com o mínimo, a mediana, o IQR, a média e o desvio padrão e o máximo para a base de dados CARROS com duas variáveis quantitativas e uma qualitativa.

Para terminar vamos formatar esse output do R com o pacote Pander

Tipodecombustivel media_HP desvio_padrao_HP
Gasolina 189.7 60.28
Álcool 91.36 24.42

Esse desvio-padrão é alto? O que isso indica?

No nosso proximo encontro, vamos construir um gráfico do ggplot2 para o relacionamento de uma variável quantitativa com uma qualitativa. O resultado deve ser algo desse tipo:

Lembrete: package ‘ggplot2’ was built under R version 3.5.3

Lembrete: package ‘ggthemes’ was built under R version 3.5.3


Faça sozinho

  1. Até agora, você recriou a análise dos dados em duas bases de dados. Sua tarefa envolve repetir essas etapas, mas para outro banco de dados.

Não esqueça de ver as outras aulas sobre o tidyverse.

Para aqueles que não gostam da liberdade dos códigos do tidyverse, podemos utilizar o pacote psych para gerar essa mesma tabela.

Attaching package: ‘psych’

The following objects are masked from ‘package:ggplot2’:

 %+%, alpha
##     item   group1 vars  n     mean       sd median  trimmed     mad  min
## X11    1 Gasolina    1 18 16.61667 3.860699  15.65 16.41875 2.96520 10.4
## X12    2   Álcool    1 14 24.55714 5.378978  22.80 24.34167 6.00453 17.8
##      max range      skew    kurtosis        se
## X11 26.0  15.6 0.4848484 -0.04617697 0.9099756
## X12 33.9  16.1 0.4055612 -1.40081941 1.4375924
##      item   group1 vars   n      mean       sd median   trimmed     mad
## X11     1      bug    1  63  65.22222 30.74161   63.0  63.56863 40.0302
## X12     2     dark    1  28  86.25000 24.33657   86.5  85.41667 29.6520
## X13     3   dragon    1  24 102.62500 29.64253   97.5 102.45000 33.3585
## X14     4 electric    1  36  67.77778 25.15223   61.5  65.96667 24.4629
## X15     5    fairy    1  17  61.52941 29.75130   52.0  59.66667 20.7564
## X16     6 fighting    1  25  94.72000 27.66394  100.0  96.33333 29.6520
## X17     7     fire    1  46  81.60870 25.29776   82.5  80.39474 26.6868
## X18     8   flying    1   3  71.66667 42.52450   70.0  71.66667 59.3040
## X19     9    ghost    1  23  66.65217 25.28674   65.0  65.68421 22.2390
## X110   10    grass    1  66  70.90909 24.07790   68.0  70.59259 26.6868
## X111   11   ground    1  30  91.30000 28.62498   83.5  90.37500 24.4629
## X112   12      ice    1  23  70.69565 25.93600   65.0  68.89474 22.2390
## X113   13   normal    1  93  71.73118 29.30096   70.0  71.09333 22.2390
## X114   14   poison    1  28  74.67857 19.63001   74.0  74.66667 23.7216
## X115   15  psychic    1  46  60.21739 30.76933   52.5  57.02632 28.9107
## X116   16     rock    1  40  88.17500 32.57566   86.5  87.03125 41.5128
## X117   17    steel    1  22  83.54545 24.60687   82.5  83.83333 14.8260
## X118   18    water    1 105  71.04762 25.03013   70.0  71.04706 28.1694
##      min max range         skew    kurtosis        se
## X11   10 135   125  0.380391425 -0.69101323  3.873079
## X12   50 131    81  0.349103174 -0.98674236  4.599179
## X13   50 150   100  0.124787666 -1.31677034  6.050755
## X14   30 123    93  0.639132740 -0.55008198  4.192039
## X15   20 131   111  0.876376993  0.05694996  7.215750
## X16   35 140   105 -0.437212902 -0.66307777  5.532787
## X17   40 140   100  0.352915815 -0.68952001  3.729952
## X18   30 115    85  0.039132886 -2.33333333 24.551533
## X19   30 115    85  0.313555232 -1.07626147  5.272649
## X110  27 130   103  0.153448080 -0.80857924  2.963785
## X111  40 150   110  0.329780390 -0.96243009  5.226183
## X112  30 130   100  0.641537362 -0.56682385  5.408029
## X113   5 160   155  0.361076486  0.71920527  3.038368
## X114  43 106    63 -0.004738210 -1.38415752  3.709723
## X115  20 150   130  0.934935632  0.24749723  4.536690
## X116  40 165   125  0.225478277 -0.94425325  5.150664
## X117  24 135   111 -0.207417321  0.11402662  5.246201
## X118  10 130   120  0.005117858 -0.33882206  2.442690