Dữ liệu tidy là gì?

Định hình lại dữ liệu với tidyr

Jeroen Boeye

Head of Machine Learning, Faktion

 

 

Các gia đình hạnh phúc thì giống nhau, còn mỗi gia đình bất hạnh bất hạnh theo cách riêng.


Leo Tolstoy

 

Các bộ dữ liệu tidy thì giống nhau, còn mỗi bộ dữ liệu lộn xộn lộn xộn theo cách riêng.


Hadley Wickham

Định hình lại dữ liệu với tidyr

Dữ liệu hình chữ nhật

 

Cấu trúc

  • Cột là biến
  • Hàng
  • Ô

 

Mẫu dữ liệu tidy

Định hình lại dữ liệu với tidyr

Dữ liệu tidy: biến

 

Cấu trúc

  • Cột là biến
  • Hàng
  • Ô

 

Mẫu biến tidy

Định hình lại dữ liệu với tidyr

Dữ liệu tidy: quan sát

 

Cấu trúc

  • Cột là biến
  • Hàng là quan sát
  • Ô

 

Mẫu quan sát tidy

Định hình lại dữ liệu với tidyr

Dữ liệu tidy: giá trị

 

Cấu trúc

  • Cột là biến
  • Hàng là quan sát
  • Ô là giá trị

 

Giá trị mẫu tidy

Định hình lại dữ liệu với tidyr

Ôn 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
Định hình lại dữ liệu với tidyr

Ôn 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
Định hình lại dữ liệu với tidyr

Ôn 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
Định hình lại dữ liệu với tidyr

Ôn 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
Định hình lại dữ liệu với tidyr

Ôn dplyr: group_by() và 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
Định hình lại dữ liệu với tidyr

logo magrittr

1 magrittr.tidyverse.org
Định hình lại dữ liệu với tidyr

 

logo dplyr

 

logo tidyr

1 www.tidyverse.org
Định hình lại dữ liệu với tidyr

Nhiều biến trong một cột

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
Định hình lại dữ liệu với tidyr

Tách biến ra hai cột

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
Định hình lại dữ liệu với tidyr

Ayo berlatih!

Định hình lại dữ liệu với tidyr

Preparing Video For Download...