R语言 如何合并数据框架
在这篇文章中,我们将讨论如何在R编程语言中对一个给定的数据框架进行内联、外联、左联或右联。
使用的函数
merge() 函数用于合并或连接两个表。通过为特定参数提供适当的值,我们可以创建所需的连接。
语法: merge(df1, df2, by.df1, by.df2, all.df1, all.df2, sort = TRUE)
参数_
df1: 一个数据框架
df2: 另一个数据框架
by.df1, by.df2: df1和df2共有的列名。
all, all.df1, all.df2: 逻辑值,实际指定发生合并的类型。
内联 接
内联接也被称为自然联接,它将两个数据帧合并为一个包含两者共同元素的数据帧。对于这一点,merge()函数只是简单地给出了两个数据框架的值,并在一个共同列的基础上生成一个数据框架。
语法:
merge(x = dataframe 1, y = data frame 2)
例子
# create data frame 1 with id ,
# name and address
df1=data.frame(id=c(7058,7059,7072,7075),
name=c("bobby","pinkey","harsha","deepika"),
address=c("kakumanu","hyd","tenali","chebrolu"))
# create data frame 2 with id ,
# marks
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063),
marks=c(90,78,98,67,89,90))
# display dataframe1
print(df1)
# display dataframe2
print(df2)
print("Inner join")
# inner join
print(merge(x = df1, y = df2))
输出
外联接
外联将两个数据框架的所有列合并为一个元素。为此,需要将所考虑的数据框架以及所有被分配为TRUE的参数传递给merge()函数。
语法:
merge(x = data frame 1, y = data frame 2, all = TRUE)
例子
# create data frame 1 with id , name and address
df1=data.frame(id=c(7058,7059,7072,7075),
name=c("bobby","pinkey","harsha","deepika"),
address=c("kakumanu","hyd","tenali","chebrolu"))
# create data frame 2 with id , marks
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063),
marks=c(90,78,98,67,89,90))
# display dataframe1
print(df1)
# display dataframe2
print(df2)
print("Inner join")
# outer join
print(merge(x = df1, y = df2,all=TRUE))
输出
注意: 它返回不匹配的列的NA。
左联接
它给出的数据是第一个数据框中的所有行与第二个数据框中的相应值相匹配。为此,在考虑数据框架的同时,在给出左表的参考后,所有参数都必须传递为 “true”。
语法:
merge(x = data frame 1, y = data frame 2, all.x = TRUE)
例子
# create data frame 1 with id , name and address
df1=data.frame(id=c(7058,7059,7072,7075),
name=c("bobby","pinkey","harsha","deepika"),
address=c("kakumanu","hyd","tenali","chebrolu"))
# create data frame 2 with id , marks
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063),
marks=c(90,78,98,67,89,90))
# display dataframe1
print(df1)
# display dataframe2
print(df2)
print("Left join")
# Left join
print(merge(x = df1, y = df2,all.x=TRUE))
输出
右键连接
它给出的数据是第二个数据框中的所有行与第一个数据框中的相应值相匹配。为此,merge()函数应提供数据框,并将所有参数分配为TRUE。
语法:
merge(x = data frame 1, y = data frame 2, all.y = TRUE)
例子
# create data frame 1 with id , name and address
df1=data.frame(id=c(7058,7059,7072,7075),
name=c("bobby","pinkey","harsha","deepika"),
address=c("kakumanu","hyd","tenali","chebrolu"))
# create data frame 2 with id , marks
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063),
marks=c(90,78,98,67,89,90))
# display dataframe1
print(df1)
# display dataframe2
print(df2)
print("Right join")
# Right join
print(merge(x = df1, y = df2,all.y=TRUE))
输出