Vad är tidy data?

Omforma data med tidyr

Jeroen Boeye

Head of Machine Learning, Faktion

 

 

Lyckliga familjer liknar varandra, men varje olycklig familj är olycklig på sitt eget sätt.


Leo Tolstoy

 

Välstrukturerade datamängder liknar varandra, men varje rörig datamängd är rörig på sitt eget sätt.


Hadley Wickham

Omforma data med tidyr

Rektangulär data

 

Struktur

  • Kolumner
  • Rader
  • Celler

 

Tidy-exempel

Omforma data med tidyr

Tidy data, variabler

 

Struktur

  • Kolumner innehåller variabler
  • Rader
  • Celler

 

Tidy-exempel variabler

Omforma data med tidyr

Tidy data, observationer

 

Struktur

  • Kolumner innehåller variabler
  • Rader innehåller observationer
  • Celler

 

Tidy-exempel observationer

Omforma data med tidyr

Tidy data, värden

 

Struktur

  • Kolumner innehåller variabler
  • Rader innehåller observationer
  • Celler innehåller värden

 

Tidy-exempel värden

Omforma data med tidyr

Repetition: 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
Omforma data med tidyr

Repetition: 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
Omforma data med tidyr

Repetition: 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
Omforma data med tidyr

Repetition: 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
Omforma data med tidyr

Repetition: dplyr – group_by() och 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
Omforma data med tidyr

magrittr-logotyp

1 magrittr.tidyverse.org
Omforma data med tidyr

 

dplyr-logotyp

 

tidyr-logotyp

1 www.tidyverse.org
Omforma data med tidyr

Flera variabler i en kolumn

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
Omforma data med tidyr

Dela upp variabler i två kolumner

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
Omforma data med tidyr

Nu kör vi en övning!

Omforma data med tidyr

Preparing Video For Download...