所涉及的函数
Mutating Joins:
inner_join()
,left_join()
,right_join()
,full_join()
Filtering Joins:
semi_join()
,anti_join()
内连接
x %>% inner_join(y, by = "key")
左连接(Left Join):保留左侧表(通常称为
x
)中的所有观测,即使在右侧表(通常称为y
)中没有匹配的键。在结果中,右侧表中没有匹配的键将用NA
(表示缺失值)填充。右连接(Right Join):保留右侧表中的所有观测,即使在左侧表中没有匹配的键。在结果中,左侧表中没有匹配的键将用
NA
填充。全连接(Full Join):保留两个表中的所有观测,无论它们是否在另一个表中有匹配的键。没有匹配的键将用
NA
填充。
left_join(x, y, by = "key")
:执行左连接。right_join(x, y, by = "key")
:执行右连接。full_join(x, y, by = "key")
:执行全连接。
右连接
right_join(x, y, by = "key")
全连接
full_join函数
全连接:保留 x 和 y 中的所有观测。
筛选连接
筛选连接匹配观测的方式与合并连接相同,但前者影响的是观测,而不是变量。筛选连接
有两种类型。
• semi_join(x, y):保留 x 表中与 y 表中的观测相匹配的所有观测。
• anti_join(x, y):丢弃 x 表中与 y 表中的观测相匹配的所有观测。
semi_join(x, y):这个函数保留左侧表(
x
)中与右侧表(y
)有匹配的观测。它只返回左侧表中与右侧表至少有一个匹配的行,但不包括右侧表的任何列。这相当于SQL中的INNER JOIN
,但只返回左侧表的列。anti_join(x, y):这个函数丢弃左侧表(
x
)中与右侧表(y
)有匹配的观测,只保留那些在右侧表中没有匹配的观测。这相当于SQL中的LEFT ANTI JOIN
。
anti_join函数
丢弃 x 表中与 y 表中的观测相匹配的所有观测。
参考:
https://www.jianshu.com/p/1f4c7bfed3d4