Merge Data Frames by Row Names in R (Example)
In this R programming article you’ll learn how to merge data frames by row names.
The content of the post is structured as follows:
Let’s start right away!
Constructing Example Data
First, we need to create some data that we can use in the example later on. Consider the following two data frames in R:
data1 <- data.frame(x1 = c(5, 1, 4, 9, 1, 2), # Create first example data frame x2 = c("A", "Y", "G", "F", "G", "Y")) data1 # Print data1 to RStudio console # x1 x2 # 1 5 A # 2 1 Y # 3 4 G # 4 9 F # 5 1 G # 6 2 Y data2 <- data.frame(y1 = c(3, 3, 4, 1, 2, 9), # Create second example data frame y2 = c("a", "x", "a", "x", "a", "x")) rownames(data2) <- 3:8 data2 # Print data2 to RStudio console # y1 y2 # 3 3 a # 4 3 x # 5 4 a # 6 1 x # 7 2 a # 8 9 x
Both example data frames contain two columns and six rows. Note that the row names of data1 range from 1 to 6 and the rows names of data2 range from 3 to 8, respectively.
Now, let’s merge this data!
Merge Data Frames by Row Names
In the following example, we will combine our two example data frames with the merge() function. The merge function provides the by argument, which usually specifies the column name based on which we want to merge our data.
And here comes the trick: If we specify the by argument to be equal to zero, then the merge function automatically uses the row names of our data as matching indicator. Let’s do this in practice:
merge(data1, data2, by = 0) # Merge data according to row names
Table 1: Merging Two Data Frames by Row Names.
Table 1 shows the output of our previous R code. As you can see the merge function retained all rows where the row names were available in both data sets. This is also called inner join.
That’s basically it. However, there is much more to learn about the merge function…
Video & Further Resources
I have recently published a video on the Statistics Globe YouTube channel, which shows the R programming codes of this tutorial. You can find the video below:
Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
In addition to the video, you could have a look at some of the related posts on my homepage. You can find a selection of articles below:
- The merge Function in R
- Merge Multiple Data Frames in List
- Row Bind Data in R
- Column Bind Data in R
- Join Data with dplyr Package
- R Functions List (+ Examples)
- The R Programming Language
Summary: In this tutorial you learned how to join two data frames by their row names in the R programming language. In case you have any further questions, let me know in the comments section.
Statistics Globe Newsletter