相交之線,互不平行

使用 dplyr 進行程式設計

Dr. Chester Ismay

Educator, Data Scientist, and R/Python Consultant

集合運算子句

  • 比較並合併兩個來源的資料

  • dplyr 提供多個在 tibbles 上做集合運算的函式

使用 dplyr 進行程式設計

集合運算的維恩圖

交集維恩圖

聯集維恩圖

聯集(含重複)維恩圖

差集維恩圖

使用 dplyr 進行程式設計

intersect 圖示

intersect 圖示

使用 dplyr 進行程式設計

烏拉圭 tibbles

uruguay_imf
# A tibble: 9 x 4
  iso   country  year consumer_price_index
  <chr> <chr>   <int>                <dbl>
1 URY   Uruguay  2011                 105.
2 URY   Uruguay  2012                 114.
3 URY   Uruguay  2013                 123.
4 URY   Uruguay  2014                 134.
5 URY   Uruguay  2015                 146.
6 URY   Uruguay  2016                 160.
7 URY   Uruguay  2017                 170.
8 URY   Uruguay  2018                 183.
9 URY   Uruguay  2019                 197.
uruguay_wb
# A tibble: 4 x 4
  iso   country  year perc_rural_pop
  <chr> <chr>   <dbl>          <dbl>
1 URY   Uruguay  2013           5.16
2 URY   Uruguay  2014           5.06
3 URY   Uruguay  2015           4.96
4 URY   Uruguay  2016           4.86
使用 dplyr 進行程式設計

嘗試使用 intersect()

intersect(uruguay_imf, uruguay_wb)
Error: not compatible: 
not compatible: 
- Cols in y but not x: `perc_rural_pop`.
- Cols in x but not y: `consumer_price_index`.
intersect(uruguay_imf$year, uruguay_wb$year)
[1] 2013 2014 2015 2016
使用 dplyr 進行程式設計

intersect() 與 join 的差異

  • intersect() 尋找共同的「列」
  • inner_join() 尋找符合的鍵值項目

這點差異很關鍵。

使用 dplyr 進行程式設計

一起來練習吧!

使用 dplyr 進行程式設計

Preparing Video For Download...