複数データフレームから指定列の星取表を作る
複数のログを分析しているとき、特定のフィールド(たとえばIPアドレス)がどのログに出現しているのかを一覧したいことがあります。簡単な例を作ると、
logA <- tibble(src_ip = c("192.168.1.3", "192.168.1.1", "192.168.1.2")) logB <- tibble(src_ip = c("192.168.1.5", "192.168.1.3", "192.168.1.4", "192.168.1.5")) logC <- tibble(src_ip = c("192.168.1.2", "192.168.1.5", "192.168.1.6"))
というデータフレーム群があったとき、
## # A tibble: 6 × 4 ## src_ip logA logB logC ## <chr> <lgl> <lgl> <lgl> ## 1 192.168.1.1 TRUE FALSE FALSE ## 2 192.168.1.2 TRUE FALSE TRUE ## 3 192.168.1.3 TRUE TRUE FALSE ## 4 192.168.1.4 FALSE TRUE FALSE ## 5 192.168.1.5 FALSE TRUE TRUE ## 6 192.168.1.6 FALSE FALSE TRUE
のような結果を得たいとします。今回は、このための関数づくりを通して、curly-curlyを使う技法を紹介します。