Des données longues aux données larges

Reshaper des données avec tidyr

Jeroen Boeye

Head of Machine Learning, Faktion

Noms de variables dans une colonne

who_df
# A tibble: 362 x 3
   country             metric    value
   <chr>               <chr>     <dbl>
 1 Afghanistan         life_exp   62.7
 2 Afghanistan         pct_obese   5.5
 3 Albania             life_exp   76.4
 4 Albania             pct_obese  21.7
# ... with 358 more rows
Reshaper des données avec tidyr

Noms de variables dans une colonne

 

Noms de variables dans une colonne

 

Noms de variables dans une colonne corrigés

Reshaper des données avec tidyr

La fonction pivot_wider()

who_df %>% 
  pivot_wider(names_from = metric, values_from = value)
# A tibble: 181 x 3
   country             life_exp pct_obese
   <chr>                  <dbl>     <dbl>
 1 Afghanistan             62.7       5.5
 2 Albania                 76.4      21.7
 3 Algeria                 76.4      27.4
 4 Angola                  62.6       8.2
# ... with 177 more rows
Reshaper des données avec tidyr

La fonction pivot_wider()

who_long_df %>% 
  pivot_wider(names_from = metric, values_from = value, names_prefix = "national_")
# A tibble: 181 x 3
   country             national_life_exp national_pct_obese
   <chr>                           <dbl>              <dbl>
 1 Afghanistan                      62.7                5.5
 2 Albania                          76.4               21.7
 3 Algeria                          76.4               27.4
 4 Angola                           62.6                8.2
# ... with 177 more rows
Reshaper des données avec tidyr

Transposer un data frame

sideways_df
# A tibble: 2 x 5
  variable       `1969` `1970` `1971` `1972`
  <chr>           <int>  <int>  <int>  <int>
1 people_on_moon      4      0      4      4
2 nuclear_bombs      82     85     59     62
Reshaper des données avec tidyr

Transposer un data frame

avant transposition

après transposition

Reshaper des données avec tidyr

Transposer un data frame : étape 1

sideways_df %>% 
  pivot_longer(-variable, names_to = "year", names_transform = list(year = as.integer))
# A tibble: 8 x 3
  variable       year  value
  <chr>          <int> <int>
1 people_on_moon 1969      4
2 people_on_moon 1970      0
3 people_on_moon 1971      4
4 people_on_moon 1972      4
5 nuclear_bombs  1969     82
6 nuclear_bombs  1970     85
7 nuclear_bombs  1971     59
8 nuclear_bombs  1972     62
Reshaper des données avec tidyr

Transposer un data frame : étape 2

sideways_df %>% 
  pivot_longer(-variable, names_to = "year", names_transform = list(year = as.integer)) %>% 
  pivot_wider(names_from = variable, values_from = value)
# A tibble: 4 x 3
  year  people_on_moon nuclear_bombs
  <int>          <int>         <int>
1 1969               4            82
2 1970               0            85
3 1971               4            59
4 1972               4            62
Reshaper des données avec tidyr

Passons à la pratique !

Reshaper des données avec tidyr

Preparing Video For Download...