Как объединить кадры данных в R?
В этой статье мы обсудим, как выполнять внутренние, внешние, левые или правые соединения в данном фрейме данных на языке программирования R.
Используемые функции
Функция merge() используется для слияния или объединения двух таблиц. Указав соответствующие значения для конкретных параметров, мы можем создать желаемое соединение.
Syntax: merge(df1, df2, by.df1, by.df2, all.df1, all.df2, sort = TRUE)
Parameters:
df1: one dataframe
df2: another dataframe
by.df1, by.df2: The names of the columns that are common to both df1 and df2.
all, all.df1, all.df2: Logical values that actually specify the type of merging happens.
Внутреннее соединение
Внутреннее соединение, также известное как естественное соединение, объединяет два фрейма данных в один, который содержит общие элементы обоих. Для этой функции слияния () просто даются значения двух рассматриваемых фреймов данных, и на основе общего столбца генерируется фрейм данных.
Синтаксис :
merge(x = dataframe 1, y = data frame 2)
Пример
R
# 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)) |
Выход:
Внешнее соединение
Outer Join объединяет все столбцы обоих фреймов данных в один для всех элементов. Для этого рассматриваемые кадры данных вместе со всеми параметрами, которым присвоено значение TRUE, должны быть переданы в функцию merge().
Синтаксис :
merge(x = data frame 1, y = data frame 2, all = TRUE)
Пример:
R
# 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)
Пример:
R
# 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 )) |
Выход:
Право присоединиться
Он дает данные, которые соответствуют всем строкам во втором фрейме данных с соответствующими значениями в первом фрейме данных. Для этой функции слияния () должны быть предоставлены кадры данных вместе со всеми параметрами, присвоенными TRUE. все параметры должны иметь ссылку на правильный фрейм данных.
Синтаксис :
merge(x = data frame 1, y = data frame 2, all.y = TRUE)
Пример:
R
# 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 )) |
Выход: