Hoàn thiện dữ liệu với mọi tổ hợp giá trị

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

Jeroen Boeye

Head of Machine Learning, Faktion

Rolling Stones và Beatles

album_df
# A tibble: 3 x 3
   year artist         n_albums
  <int> <chr>             <int>
1  1977 Beatles               2
2  1977 Rolling Stones        1
3  1979 Beatles               1
Định hình lại dữ liệu với tidyr

Trạng thái ban đầu và mục tiêu

Trước complete

Sau complete

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

Trạng thái ban đầu và mục tiêu

Trước complete

Sau complete với fill

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

Hàm complete()

album_df %>% 
  complete(year, artist)
# A tibble: 4 x 3
   year artist         n_albums
  <int> <chr>             <int>
1  1977 Beatles               2
2  1977 Rolling Stones        1
3  1979 Beatles               1
4  1979 Rolling Stones       NA
Định hình lại dữ liệu với tidyr

Hàm complete(): ghi đè giá trị NA

album_df %>% 
  complete(year, artist, fill = list(n_albums = 0L))
# A tibble: 4 x 3
   year artist         n_albums
  <int> <chr>             <int>
1  1977 Beatles               2
2  1977 Rolling Stones        1
3  1979 Beatles               1
4  1979 Rolling Stones        0
Định hình lại dữ liệu với tidyr

Hàm complete(): thêm giá trị chưa xuất hiện

album_df %>% 
  complete(
    year,
    artist = c(
      "Beatles", 
      "Rolling Stones", 
      "ABBA"), 
    fill = list(n_albums = 0L)
  )
# A tibble: 6 x 3
   year artist         n_albums
  <int> <chr>             <int>
1  1977 ABBA                  0
2  1977 Beatles               2
3  1977 Rolling Stones        1
4  1979 ABBA                  0
5  1979 Beatles               1
6  1979 Rolling Stones        0
Định hình lại dữ liệu với tidyr

Hàm complete(): thêm giá trị chưa xuất hiện

album_df %>% 
  complete(
    year = 1977:1979,
    artist, 
    fill = list(n_albums = 0L)
  )
# A tibble: 6 x 3
   year artist         n_albums
  <int> <chr>             <int>
1  1977 Beatles               2
2  1977 Rolling Stones        1
3  1978 Beatles               0
4  1978 Rolling Stones        0
5  1979 Beatles               1
6  1979 Rolling Stones        0
Định hình lại dữ liệu với tidyr

Tạo dãy với full_seq()

full_seq(c(1977, 1979), period = 1)
1977 1978 1979
full_seq(c(1977, 1979, 1980, 1980, 1980), period = 1)
1977 1978 1979 1980
full_seq(album_df$year, period = 1)
1977 1978 1979
Định hình lại dữ liệu với tidyr

Dùng full_seq() trong complete()

album_df %>% 
  complete(
    year = full_seq(year, period = 1),
    artist, 
    fill = list(n_albums = 0L)
  )
# A tibble: 6 x 3
   year artist         n_albums
  <dbl> <chr>             <int>
1  1977 Beatles               2
2  1977 Rolling Stones        1
3  1978 Beatles               0
4  1978 Rolling Stones        0
5  1979 Beatles               1
6  1979 Rolling Stones        0
Định hình lại dữ liệu với tidyr

Tạo dãy ngày với full_seq()

full_seq(c(as.Date("2000-01-01"), as.Date("2000-01-10")), period = 1)
 [1] "2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04" "2000-01-05"
 [6] "2000-01-06" "2000-01-07" "2000-01-08" "2000-01-09" "2000-01-10"
Đị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...