5.2 Reformatar tabelas

O pacote tidyr é mais um dos pacotes criados por Hadley Wickham. Este fato, por si só, já traz algumas vantagens: ele se integra perfeitamente com o dplyr, usando o conector %>%, e tem a sintaxe de suas funções bastante intuitiva.

O tidyr também tem suas funções organizadas em pequenos verbetes, onde cada um representa uma tarefa para organizar os dados.

5.2.1 Pivot longer

A função pivot_longer(), antiga gather(), transforma dados de formato “largo” para formato “longo”. Em um formato longo, uma única coluna contém todos os valores de variáveis diferentes, enquanto outra coluna contém os nomes dessas variáveis.

Transformando do formato wide para long

Figure 5.1: Transformando do formato wide para long

Vamos o utilizar a base de dados adulto2, que traz a ocupação e o sexo de uma lista de indivíduos.

adulto2<-read.csv("adulto2.csv")



O argumento cols= controla quais colunas serão (ou não serão) transformadas.

O argumento names_to= controla o nome da nova coluna que irá receber os nomes das colunas transpostas.

O argumentos values_to= controla o nome da nova coluna que irá receber os valores das colunas transpostas

adulto2  %>% 
  pivot_longer(cols=-Occupation,names_to="sexo", values_to="quantidade")
## # A tibble: 24 × 3
##    Occupation        sexo   quantidade
##    <chr>             <chr>       <int>
##  1 Adm-clerical      Female         11
##  2 Adm-clerical      Male            7
##  3 Craft-repair      Female          2
##  4 Craft-repair      Male           23
##  5 Exec-managerial   Female         11
##  6 Exec-managerial   Male           15
##  7 Farming-fishing   Female          0
##  8 Farming-fishing   Male            3
##  9 Handlers-cleaners Female          0
## 10 Handlers-cleaners Male           10
## # ℹ 14 more rows

5.2.2 Pivot wider

É a operação antagônica do pivot_longer(), transformando dados de formato “longo” para formato “largo”. Em um formato largo, cada valor de variável única tem sua própria coluna.

Vamos utilizar o dataframe us_rent_income, que já vem integrado ao tidyr.

us_rent_income<-us_rent_income

O argumento names_from= controla de qual coluna serão criados os nomes das novas colunas

O argumento values_from= controla as colunas cujos valores serão os valores das novas colunas

us_rent_income %>% 
  pivot_wider(
    names_from = variable,
    values_from = c(estimate,moe))
## # A tibble: 52 × 6
##    GEOID NAME                 estimate_income estimate_rent moe_income moe_rent
##    <chr> <chr>                          <dbl>         <dbl>      <dbl>    <dbl>
##  1 01    Alabama                        24476           747        136        3
##  2 02    Alaska                         32940          1200        508       13
##  3 04    Arizona                        27517           972        148        4
##  4 05    Arkansas                       23789           709        165        5
##  5 06    California                     29454          1358        109        3
##  6 08    Colorado                       32401          1125        109        5
##  7 09    Connecticut                    35326          1123        195        5
##  8 10    Delaware                       31560          1076        247       10
##  9 11    District of Columbia           43198          1424        681       17
## 10 12    Florida                        25952          1077         70        3
## # ℹ 42 more rows