介绍如何使用dplyr软件包的join函数合并数据
创建示例数据
data1 <- data.frame(ID = 1:2,X1 = c("a1", "a2"))
data2 <- data.frame(ID = 2:3, X2 = c("b1", "b2"))
图1说明了两个数据框的结构以及如何使用dplyr包的不同联接函数对其进行合并
library(tidyverse)
inner_join(data1, data2, by = "ID")
inner_join函数合并两个数据集的变量,但仅保留具有共同ID(即ID 2)的行
左连接
left_join(data1, data2, by = "ID")
与inner_join函数的区别在于,left_join保留了左数据表的所有行
右连接
right_join(data1, data2, by = "ID")
right_join函数保留右侧的所有数据行,如果比较左连接与右连接,则可以看到两个函数都保留相反数据的行
完全连接
full_join(data1, data2, by = "ID")
full_join函数保留两个输入数据集的所有行,并在其中一个数据帧中缺少ID时插入NA
半连接
semi_join(data1, data2, by = "ID")
semi_join函数仅保留两个数据集共有的行,而仅保留左侧数据集的列
反连接
anti_join(data1, data2, by = "ID")
anti_join函数仅保留右侧数据中不存在的行,并且仅保留左侧数据中的列