[R]指定の列の値を基準にして2つのtibbleを結合する
tidyverse(dplyr)パッケージのleft_join関数、right_join関数、inner_join関数、full_join関数を使う。基準とする列の指定にはjoin_by関数を使う。以下は、次の2つのtibbleを指定の列(以下の例ではcvとid)の値を基準にして結合した例。簡潔な表示にするため、表示はすべてデータフレームで行っている。
> library(tidyverse)
> chara %>% as.data.frame()
nama title no cv
1 ライスシャワー ウマ娘 30 miwami01
2 スーパークリーク ウマ娘 45 kyuki01
3 メイショウドトウ ウマ娘 58 mwatada01
4 ライザ ライザのアトリエ2 1 ynoguchi01
5 フィー ライザのアトリエ2 2 mwatada01
6 黒川あかね 推しの子 6 miwami01
> seiyu %>% as.data.frame()
id name
1 miwami01 石見舞菜香
2 kyuki01 優木かな
3 mwatada01 和多田美咲
4 machico01 Machico
left_join関数は、左側のtibbleの行はすべて採用され、右側のtibbleは指定の列が一致した行だけが結合される。一致の無かった左側の行の連結により作成される列にはNAが挿入される(以下の4行目)。
> chara %>% left_join(seiyu, by = join_by(cv == id)) %>% as.data.frame()
nama title no cv name
1 ライスシャワー ウマ娘 30 miwami01 石見舞菜香
2 スーパークリーク ウマ娘 45 kyuki01 優木かな
3 メイショウドトウ ウマ娘 58 mwatada01 和多田美咲
4 ライザ ライザのアトリエ2 1 ynoguchi01 <NA>
5 フィー ライザのアトリエ2 2 mwatada01 和多田美咲
6 黒川あかね 推しの子 6 miwami01 石見舞菜香
right_join関数は、右側のtibbleの列はすべて採用され、左側のtibbleは指定の列が一致した行だけが結合される。一致の無かった右側の行の連結により作成される列にはNAが挿入される(以下の6行目)。
> chara %>% right_join(seiyu, by = join_by(cv == id)) %>% as.data.frame()
nama title no cv name
1 ライスシャワー ウマ娘 30 miwami01 石見舞菜香
2 スーパークリーク ウマ娘 45 kyuki01 優木かな
3 メイショウドトウ ウマ娘 58 mwatada01 和多田美咲
4 フィー ライザのアトリエ2 2 mwatada01 和多田美咲
5 黒川あかね 推しの子 6 miwami01 石見舞菜香
6 <NA> <NA> NA machico01 Machico
inner_join関数は、指定の列の値が一致した組み合わせのみがすべて結合される。
> chara %>% inner_join(seiyu, by = join_by(cv == id)) %>% as.data.frame()
nama title no cv name
1 ライスシャワー ウマ娘 30 miwami01 石見舞菜香
2 スーパークリーク ウマ娘 45 kyuki01 優木かな
3 メイショウドトウ ウマ娘 58 mwatada01 和多田美咲
4 フィー ライザのアトリエ2 2 mwatada01 和多田美咲
5 黒川あかね 推しの子 6 miwami01 石見舞菜香
full_join関数は、左側のtibbleの行はすべて採用され、右側のtibbleの行もすべて採用される。指定の列が一致したものは一致したもの同士で結合し、結合できない行の空いた列にはNAが挿入されて結合される(以下の4行目と7行目)。
> chara %>% full_join(seiyu, by = join_by(cv == id)) %>% as.data.frame()
nama title no cv name
1 ライスシャワー ウマ娘 30 miwami01 石見舞菜香
2 スーパークリーク ウマ娘 45 kyuki01 優木かな
3 メイショウドトウ ウマ娘 58 mwatada01 和多田美咲
4 ライザ ライザのアトリエ2 1 ynoguchi01 <NA>
5 フィー ライザのアトリエ2 2 mwatada01 和多田美咲
6 黒川あかね 推しの子 6 miwami01 石見舞菜香
7 <NA> <NA> NA machico01 Machico
« [R]leafletを使用して地図上にポップアップを表示する | トップページ | [R]特定の列の値を基準にして2つのtibbleが結合できるか否か確認する »
「R(tidyverse)」カテゴリの記事
- [R]2つの列による重複を調べてその重複の数を表示する(2025.12.24)
- [R]tibbleから指定した一列を取り出してベクトルにする(2025.10.19)
- [R]tibbleを指定した列だけのtibbleに変換する(2025.10.14)
- [R]tibbleを指定した行だけのtibbleに変換する(2025.10.13)
- [R]tibbleの列名を得る(2025.07.17)
« [R]leafletを使用して地図上にポップアップを表示する | トップページ | [R]特定の列の値を基準にして2つのtibbleが結合できるか否か確認する »

コメント