The merge()
function in R combines two data frames.
The most crucial requirement for connecting two data frames is that the column type is the same on which the merging occurs.
The merge()
function is similar to the join
function in a Relational Database Management System (RDMS).
Let’s look at the syntax of the function.
merge(x, y, by, by.x, by.y, all.x, all.y, sort = TRUE)
x
: This is the first data frame or object to be merged.
y
: This is the second data frame or object to be merged.
by
, by.x
, by.y
: This specifies the columns used for the merging.
all.x
, all.y
: If either is TRUE
, additional rows will be added to the output:
x
in the case of all.x=TRUE
ORy
in the case of all.y=TRUE
If the syntax does not have a matching row for the associated data frame or object, then NA
s will be printed in these rows.
sort = TRUE/FALSE
: This specifies if the results are sorted or not.
Let’s look at the following example:
x = data.frame(StudentId = c(1:6),Marks = c("70", "84", "90", "93", "80", "76"))y = data.frame(StudentId = c(2, 4, 6, 7, 8),city = c("Lahore", "Karachi", "Peshawar", "Quetta", "Multan"))z = merge(x, y, by = "StudentId")z
Lines 1-2: We define a dataset x
with StudentId
and their respective Marks
.
Lines 4-5: We define a dataset y
with StudentId
and the city
they belong to.
Line 7: We take the natural join of the two data frames and merge the data into another dataset, z
.
We get three values in the output because these three values (i.e.,
2
,4
, and6
) are common in our data frames.
Free Resources