列の結合

概要

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
Sponsored Link