Sloupce s více hodnotami

Reshaping Data with tidyr

Jeroen Boeye

Head of Machine Learning, Faktion

Dvě proměnné v jednom sloupci

netflix_df
# A tibble: 637 x 3
   title                  type    duration
   <chr>                  <chr>   <chr>   
 1 Article 15             Movie   125 min 
 2 Kill Me If You Dare    Movie   100 min 
 3 The Spy                TV Show 1 Seasons
 4 The World We Make      Movie   108 min 
 5 Watchman               Movie   93 min
Reshaping Data with tidyr

Převod datových typů oddělených sloupců

netflix_df %>% 
  separate(duration, into = c("value", "unit"), convert = TRUE)
# A tibble: 5 x 4
  title               type    value unit  
  <chr>               <chr>   <int> <chr> 
1 Article 15          Movie     125 min   
2 Kill Me If You Dare Movie     100 min   
3 The Spy             TV Show     1 Seasons
4 The World We Make   Movie     108 min   
5 Watchman            Movie      93 min
Reshaping Data with tidyr

Rekapitulace agregace v dplyr

netflix_df %>% 
  separate(duration, into = c("value", "unit"), convert = TRUE) %>%
  group_by(type, unit) %>% 
  summarize(mean_duration = mean(value))
# A tibble: 2 x 3
# Groups:   type [2]
  type    unit    mean_duration
  <chr>   <chr>           <dbl>
1 Movie   min             98.6 
2 TV Show Seasons          1.85
Reshaping Data with tidyr

Rozdělení proměnných do sloupců

Sloupec s více proměnnými

  Jeden sloupec na proměnnou

Reshaping Data with tidyr

Sloučení více sloupců do jednoho

star_wars_df
# A tibble: 4 x 2
  given_name family_name
  <chr>      <chr>      
1 Luke       Skywalker  
2 Han        Solo       
3 Leia       Organa     
4 R2         D2
Reshaping Data with tidyr

Sloučení více sloupců do jednoho

star_wars_df %>%
  unite("name", given_name, family_name)
# A tibble: 4 x 1
  name          
  <chr>         
1 Luke_Skywalker
2 Han_Solo      
3 Leia_Organa   
4 R2_D2
Reshaping Data with tidyr

Sloučení více sloupců do jednoho

star_wars_df %>%
  unite("name", given_name, family_name, sep = " ")
# A tibble: 4 x 1
  name          
  <chr>         
1 Luke Skywalker
2 Han Solo      
3 Leia Organa   
4 R2 D2
Reshaping Data with tidyr

Více hodnot v jedné buňce

drink_df
# A tibble: 2 x 2
  drink          ingredients           
  <chr>          <chr>                 
1 Chocolate milk milk, chocolate, sugar
2 Orange juice   oranges, sugar
Reshaping Data with tidyr

Více hodnot v jedné buňce

Data Netflixu

Sloupec s více proměnnými

Data nápojů

Buňka s více hodnotami

Reshaping Data with tidyr

Více hodnot v jedné buňce

Data Netflixu

Sloupec s více proměnnými

Data nápojů

Buňka s více hodnotami

Hodnoty na proměnné

Jeden sloupec na proměnnou

Reshaping Data with tidyr

Více hodnot v jedné buňce

Data Netflixu

Sloupec s více proměnnými

Data nápojů

Buňka s více hodnotami

Hodnoty na proměnné

Jeden sloupec na proměnnou

Hodnoty na pozorování

Jedna hodnota na buňku

Reshaping Data with tidyr

Rozdělení hodnot do řádků

drink_df %>% 
  separate_rows(ingredients, sep = ", ")
# A tibble: 5 x 2
  drink          ingredients
  <chr>          <chr>      
1 Chocolate milk milk       
2 Chocolate milk chocolate  
3 Chocolate milk sugar      
4 Orange juice   oranges    
5 Orange juice   sugar
Reshaping Data with tidyr

Počítání ingrediencí

drink_df %>% 
  separate_rows(ingredients, sep = ", ") %>% 
  count(drink)
# A tibble: 2 x 2
  drink              n
  <chr>          <int>
1 Chocolate milk     3
2 Orange juice       2
drink_df %>% 
  separate_rows(ingredients, sep = ", ") %>% 
  count(ingredients)
# A tibble: 4 x 2
  ingredients     n
  <chr>       <int>
1 chocolate       1
2 milk            1
3 oranges         1
4 sugar           2
Reshaping Data with tidyr

Vizualizace ingrediencí

drink_df %>% 
  separate_rows(ingredients, sep = ", ") %>% 
  ggplot(aes(x=drink, fill=ingredients)) +
  geom_bar()

Sloupcový graf ingrediencí

Reshaping Data with tidyr

Lass uns üben!

Reshaping Data with tidyr

Preparing Video For Download...