Che cos'è il tidy data?

Rimodellare i dati con tidyr

Jeroen Boeye

Head of Machine Learning, Faktion

 

 

Le famiglie felici si assomigliano tutte; ogni famiglia infelice è infelice a modo suo.


Lev Tolstoj

 

I dataset in formato tidy si assomigliano tutti; ogni dataset disordinato è disordinato a modo suo.


Hadley Wickham

Rimodellare i dati con tidyr

Dati rettangolari

 

Struttura

  • Colonne
  • Righe
  • Celle

 

Esempio tidy

Rimodellare i dati con tidyr

Tidy data, variabili

 

Struttura

  • Le colonne contengono variabili
  • Righe
  • Celle

 

Esempio tidy variabili

Rimodellare i dati con tidyr

Tidy data, osservazioni

 

Struttura

  • Le colonne contengono variabili
  • Le righe contengono osservazioni
  • Celle

 

Esempio tidy osservazioni

Rimodellare i dati con tidyr

Tidy data, valori

 

Struttura

  • Le colonne contengono variabili
  • Le righe contengono osservazioni
  • Le celle contengono valori

 

Esempio tidy valori

Rimodellare i dati con tidyr

Ripasso di dplyr

character_df
# A tibble: 4 x 3
  name           homeworld species
  <chr>          <chr>     <chr>  
1 Luke Skywalker Tatooine  Human  
2 R2-D2          Naboo     Droid  
3 Darth Vader    Tatooine  Human  
4 Obi-Wan Kenobi Stewjon   Human
Rimodellare i dati con tidyr

Ripasso dplyr: select()

character_df %>% 
  select(name, homeworld)
# A tibble: 4 x 2
  name           homeworld
  <chr>          <chr>    
1 Luke Skywalker Tatooine 
2 R2-D2          Naboo    
3 Darth Vader    Tatooine 
4 Obi-Wan Kenobi Stewjon
Rimodellare i dati con tidyr

Ripasso dplyr: filter()

character_df %>% 
  filter(homeworld == "Tatooine")
# A tibble: 2 x 3
  name           homeworld species
  <chr>          <chr>     <chr>  
1 Luke Skywalker Tatooine  Human  
2 Darth Vader    Tatooine  Human
Rimodellare i dati con tidyr

Ripasso dplyr: mutate()

character_df %>% 
  mutate(is_human = species == "Human")
# A tibble: 4 x 4
  name           homeworld species is_human
  <chr>          <chr>     <chr>   <lgl>   
1 Luke Skywalker Tatooine  Human   TRUE    
2 R2-D2          Naboo     Droid   FALSE   
3 Darth Vader    Tatooine  Human   TRUE    
4 Obi-Wan Kenobi Stewjon   Human   TRUE
Rimodellare i dati con tidyr

Ripasso dplyr: group_by() e summarize()

character_df %>% 
  group_by(homeworld) %>% 
  summarize(n = n())
# A tibble: 3 x 2
  homeworld     n
  <chr>     <int>
1 Naboo         1
2 Stewjon       1
3 Tatooine      2
Rimodellare i dati con tidyr

logo magrittr

1 magrittr.tidyverse.org
Rimodellare i dati con tidyr

 

logo dplyr

 

logo tidyr

1 www.tidyverse.org
Rimodellare i dati con tidyr

Più variabili in un'unica colonna

population_df
# A tibble: 4 x 2
  country                 population
  <chr>                        <dbl>
1 Brazil, South America        210. 
2 Nepal, Asia                   28.1
3 Senegal, Africa               15.8
4 Australia, Oceania            25.0
Rimodellare i dati con tidyr

Separare le variabili su due colonne

population_df %>% 
  separate(country, into = c("country", "continent"), sep = ", ")
# A tibble: 4 x 3
  country   continent      population
  <chr>     <chr>               <dbl>
1 Brazil    South America       210. 
2 Nepal     Asia                 28.1
3 Senegal   Africa               15.8
4 Australia Oceania              25.0
Rimodellare i dati con tidyr

Esercitiamoci!

Rimodellare i dati con tidyr

Preparing Video For Download...