📜  使用 Dplyr 包连接 R 中的数据

📅  最后修改于: 2022-05-13 01:55:09.746000             🧑  作者: Mango

使用 Dplyr 包连接 R 中的数据

在本文中,我们将研究在 R 编程语言中使用 dplyr 连接数据的不同方法。

我们需要加载 dplyr 包。键入以下命令 -

Install - install.packages("dplyr")          
Load - library("dplyr") 

方法一:使用内连接

在这种连接数据的方法中,用户调用 inner_join函数,这将导致连接数据与 R 编程语言中两个表中具有匹配值的记录。

inner_join()函数:

此函数包括 `x` 和 `y` 中的所有行。

例子:

在此示例中,我们将使用 dplyr 包中的 inner_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R
# load the library
library("dplyr")
  
# create dataframe with 1 to 5 integers
gfg1 < -data.frame(ID=c(1: 5))
  
# create dataframe with 4 to 8 integers
gfg2 < -data.frame(ID=c(4: 8))
  
# perform inner join
inner_join(gfg1, gfg2, by="ID")


R
# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
  
gfg2<-data.frame(ID=c(4:8))
  
# perform left join
left_join(gfg1,gfg2, by = "ID")


R
# load the library
library("dplyr") 
  
# create dataframes
gfg1<-data.frame(ID=c(1:5))
  
gfg2<-data.frame(ID=c(4:8))
  
# perform right join
right_join(gfg1,gfg2, by = "ID")


R
# load library
library("dplyr")  
  
# create dataframe
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform full join
full_join(gfg1,gfg2, by = "ID")


R
# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform semijoin
semi_join(gfg1,gfg2, by = "ID")


R
# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform anti join
anti_join(gfg1,gfg2, by = "ID")


输出:

ID
1 4
2 5 

方法2:使用左连接

在这种连接数据的方法中,用户调用 left_join函数,这将导致连接数据包括将第一个数据帧中的所有行与 R 编程语言中 second.s 上的相应值匹配。

left_join()函数:

此函数包括 `x` 中的所有行。

例子:

在此示例中,我们将使用 dplyr 包中的 left_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R

# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
  
gfg2<-data.frame(ID=c(4:8))
  
# perform left join
left_join(gfg1,gfg2, by = "ID")    

输出:

ID
1  1
2  2
3  3
4  4
5  5

方法3:使用右连接

在这种连接数据的方法中,用户调用 right_join函数,这将导致连接数据包括将第二个数据帧中的所有行与 R 编程语言中第一个数据帧中的相应值匹配。

right_join()函数:

此函数包括“y”中的所有行和“x”的相应行。

例子:

在此示例中,我们将使用 dplyr 包中的 right_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R

# load the library
library("dplyr") 
  
# create dataframes
gfg1<-data.frame(ID=c(1:5))
  
gfg2<-data.frame(ID=c(4:8))
  
# perform right join
right_join(gfg1,gfg2, by = "ID")    

输出:

ID
1  4
2  5
3  6
4  7
5  8

方法 4:使用完全连接

在这种连接数据的方法中,用户调用 right_join函数,这将导致连接表中所有行的连接数据,

full_join()函数:

此函数包括所有行。

例子:

在此示例中,我们将使用 dplyr 包中的 full_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R

# load library
library("dplyr")  
  
# create dataframe
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform full join
full_join(gfg1,gfg2, by = "ID")    

输出:

ID
1  1
2  2
3  3
4  4
5  5
6  6
7  7
8  8

方法5:使用半连接

在这种连接数据的方法中,用户调用 right_join函数,这将返回第一个表中至少找到一个匹配项的每一行的一个副本。

semi_join()函数:

此函数返回 x 中在 y 中有匹配值的所有行,只保留 x 中的列。

例子:

在此示例中,我们将使用 dplyr 包中的 semi_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R

# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform semijoin
semi_join(gfg1,gfg2, by = "ID")    

输出:

ID
1  4
2  5

方法六:使用反连接

在这种连接数据的方法中,用户调用 right_join函数,这将返回 x 中在 y 中没有匹配值的所有行,只保留 x 中的列。

anti_join()函数:

此函数返回 x 中在 y 中没有匹配值的所有行,只保留 x 中的列。

例子:

在此示例中,我们将使用 dplyr 包中的 anti_join()函数以 R 编程语言连接两个不同的数据,如上图所示。

R

# load the library
library("dplyr") 
  
# create the dataframes
gfg1<-data.frame(ID=c(1:5))
gfg2<-data.frame(ID=c(4:8))
  
# perform anti join
anti_join(gfg1,gfg2, by = "ID")    

输出:

ID
1  1
2  2
3  3