交わる線は平行ではない

dplyr でプログラミング

Dr. Chester Ismay

Educator, Data Scientist, and R/Python Consultant

集合演算

  • 2つのソースのデータを比較・結合する

  • dplyr には tibble に集合演算を行う関数がある

dplyr でプログラミング

集合演算のベン図

インターセクトのベン図

ユニオンのベン図

ユニオン(重複あり)のベン図

setdiff のベン図

dplyr でプログラミング

intersect の図

intersect の図

dplyr でプログラミング

ウルグアイのtibble

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() と結合の違い

  • intersect() は共通の「行」を探します
  • inner_join() は一致するキーの値を探します

この違いは重要です。

dplyr でプログラミング

練習してみましょう!

dplyr でプログラミング

Preparing Video For Download...