关系数据,俗称多个表通过统一的id进行合并,这个id可以是单一的key,也可以是多个key,总之就是合并的关键词吧。其实这个问题在之前的rbase中已经有过涉及,在spss中也可以通过模块化的操作进行合并table。这里重新提起来,主要是能够使代码规范化到tidyverse的生态中
x <- tribble(
~key, ~val_x,
1, "x1",
2, "x2",
3, "x3",
4, "x4"
)
y <- tribble(
~key, ~val_y,
1, "y1",
2, "y2",
3, "y3"
)
left_join(x, y, by = "key")
#> 1 1 x1 y1
#> 2 2 x2 y2
#> 3 2 x3 y3
#> 4 2 x4 NA
dplyr | merge |
---|---|
inner_join(x, y) | merge(x, y) |
left_join(x, y) | merge(x, y, all.x = TRUE) |
right_join(x, y) | merge(x, y, all.y = TRUE), |
full_join(x, y) | merge(x, y, all.x = TRUE, all.y = TRUE) |
从上述看,似乎是将rbase的merge函数进行了拆解分为了三个函数,从函数设计的简洁原则来看,似乎有点多余,好在函数比较好记,重新转换思路并不是一件困难的事情,为了生态而生态吧(为了管道)。
love & peace