概要
dplyr
パッケージに含まれるinner_join(), left_join(), right_join(), full_join()
は、列の結合を行う関数です。同じ列の結合を行う関数にはsemi_join(), anti_join(), nest_join()
が存在します。
関連ページ
関数
inner_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"))
left_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"))
right_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"))
full_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"))
引数 | 説明 |
---|---|
x, y | データフレーム |
by | 結合に用いる列名を指定 |
copy | |
suffix | 同名の列名が存在する時の接尾語を指定 |
使い方
解説用データフレーム
df.x <- tibble(
x1 = c('A', 'B', 'C'),
x2 = c(1, 2, 3),
)
df.y <- tibble(
y1 = c('A', 'B', 'D'),
y2 = c(1, 2, 4),
)
> df.x
# A tibble: 3 x 2
x1 x2
<chr> <dbl>
1 A 1
2 B 2
3 C 3
> df.y
# A tibble: 3 x 2
y1 y2
<chr> <dbl>
1 A 1
2 B 2
3 D 4
1.列の結合
1-1.内部結合
# df.xとdf.yの内部結合
inner_join(df.x, df.y, by = c('x1' = 'y1'))
# A tibble: 2 x 3
x1 x2 y2
<chr> <dbl> <dbl>
1 A 1 1
2 B 2 2
1-2.左外部結合
# df.xとdf.yの左外部結合
left_join(df.x, df.y, by = c('x1' = 'y1'))
# A tibble: 3 x 3
x1 x2 y2
<chr> <dbl> <dbl>
1 A 1 1
2 B 2 2
3 C 3 NA
1-3.右外部結合
# df.xとdf.yの右外部結合
right_join(df.x, df.y, by = c('x1' = 'y1'))
# A tibble: 3 x 3
x1 x2 y2
<chr> <dbl> <dbl>
1 A 1 1
2 B 2 2
3 D NA 4
1-4.外部結合
# df.xとdf.yの外部結合
full_join(df.x, df.y, by = c('x1' = 'y1'))
# A tibble: 3 x 3
x1 x2 y2
<chr> <dbl> <dbl>
1 A 1 1
2 B 2 2
3 C 3 NA
4 D NA 4