R语言 用Dplyr包连接数据
在这篇文章中,我们将研究在R编程语言中用dplyr连接数据的不同方法。
我们需要加载dplyr包。输入以下命令 –
Install – install.packages(“dplyr”)
Load – library(“dplyr”)
方法1:使用内部连接
在这种连接数据的方法中,用户调用inner_join函数,这将导致在R编程语言中两个表中有匹配值的记录的连接数据。
inner_join()函数 。
这个函数包括x
和y
中的所有记录。
语法
inner_join(x, y, by = NULL, on = NULL)
参数
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的inner_join()函数来连接两个不同的数据,如上图中的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")
输出
ID
1 4
2 5
方法2: 使用左键连接
在这种连接数据的方法中,用户调用left_join函数,这将导致连接的数据由第一个数据框中的所有行与第二个数据框中的相应值相匹配组成,在R编程语言中。
left_join()函数
这个函数包括x
中的所有行。
语法
left_join(x, y, by = NULL, on = NULL)
参数:
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的left_join()函数来连接两个不同的数据,如上图中的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’中的相应行。
语法
right_join(x, y, by = NULL, on = NULL)
参数
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的right_join()函数来连接两个不同的数据,如上图中的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()函数 。
这个函数包括所有的行。
语法
full_join(x, y, by = NULL, on = NULL)
参数
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的full_join()函数来连接两个不同的数据,如上图中的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中的列。
语法
semi_join(x, y, by = NULL, on = NULL)
参数
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的semi_join()函数来连接两个不同的数据,如上图中的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
方法6:使用反连接
在这种连接数据的方法中,用户调用right_join函数,这将返回x中所有在y中没有匹配值的行,只保留x的列。
anti_join()函数
这个函数返回x中所有在y中没有匹配值的行,只保留x中的列。
语法
anti_join(x, y, by = NULL, on = NULL)
参数
- x:一个data.table
- y:一个数据表
- by:一个变量的字符向量,用于连接。
- on:指明x中的哪些列应该与y中的哪些列连接。
例子
在这个例子中,我们将使用dplyr包中的anti_join()函数来连接两个不同的数据,如上图中的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