

- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to merge data frames by row names in R?
Mostly, we merge the data frames by columns because column names are considered prominent in data sets but it is also possible to merge two data frames by using rows. Merging by rows is likely to result in more uncleaned data as compared to the merging by columns. This can be done with the help of merge function and its by argument.
Example
Consider the below data frames −
df1<-data.frame(x1=rnorm(10),x2=rpois(10,5)) df1
Output
x1 x2 1 -0.47030794 0 2 0.86338465 8 3 -2.05770293 5 4 1.95479596 9 5 -0.06913421 5 6 0.64897263 5 7 -1.79859382 8 8 0.31247699 6 9 -0.36808285 7 10 -0.79578938 3
Output
df2 <-data.frame(x1=rnorm(10,1.5)) df2
Output
x1 1 -0.01317184 2 0.01687606 3 -0.71685289 4 1.75961121 5 2.49024285 6 2.92183374 7 0.10276216 8 1.39703966 9 1.41001339 10 0.98221783
Example
df3 <-data.frame(x1=rnorm(5,0.5),x2=runif(5,2,3),x3=runif(5,2,5)) df3
Output
x1 x2 x3 1 -0.4926244 2.697937 3.961118 2 1.9863263 2.861944 3.659564 3 -0.2266537 2.383499 3.208741 4 0.5966503 2.511485 3.230795 5 0.7148641 2.362419 4.582841
Merging df1 with df2, df1 with df3, and df2 with df3 −
Example
df_1_2 <-merge(df1,df2,by='row.names',all=TRUE) df_1_2
Output
Row.names x1.x x2 x1.y 1 1 -0.47030794 0 -0.01317184 2 10 -0.79578938 3 0.98221783 3 2 0.86338465 8 0.01687606 4 3 -2.05770293 5 -0.71685289 5 4 1.95479596 9 1.75961121 6 5 -0.06913421 5 2.49024285 7 6 0.64897263 5 2.92183374 8 7 -1.79859382 8 0.10276216 9 8 0.31247699 6 1.39703966 10 9 -0.36808285 7 1.41001339
Example
df_1_3 <-merge(df1,df3,by='row.names',all=TRUE) df_1_3
Output
Row.names x1.x x2.x x1.y x2.y x3 1 1 -0.47030794 0 -0.4926244 2.697937 3.961118 2 10 -0.79578938 3 NA NA NA 3 2 0.86338465 8 1.9863263 2.861944 3.659564 4 3 -2.05770293 5 -0.2266537 2.383499 3.208741 5 4 1.95479596 9 0.5966503 2.511485 3.230795 6 5 -0.06913421 5 0.7148641 2.362419 4.582841 7 6 0.64897263 5 NA NA NA 8 7 -1.79859382 8 NA NA NA 9 8 0.31247699 6 NA NA NA 10 9 -0.36808285 7 NA NA NA
Example
df_2_3 <-merge(df2,df3,by='row.names',all=TRUE) df_2_3
Output
Row.names x1.x x1.y x2 x3 1 1 -0.01317184 -0.4926244 2.697937 3.961118 2 10 0.98221783 NA NA NA 3 2 0.01687606 1.9863263 2.861944 3.659564 4 3 -0.71685289 -0.2266537 2.383499 3.208741 5 4 1.75961121 0.5966503 2.511485 3.230795 6 5 2.49024285 0.7148641 2.362419 4.582841 7 6 2.92183374 NA NA NA 8 7 0.10276216 NA NA NA 9 8 1.39703966 NA NA NA 10 9 1.41001339 NA NA NA
- Related Questions & Answers
- How to create a single data frame from data frames stored in a list with row names in R?
- How to aggregate matrix columns by row names in R?
- How to match and replace column names stored in R data frames in R-Programming?
- How to change the column names and row names of a data frame in R?
- How to remove rows in an R data frame using row names?
- How to merge two unequal data frames and replace missing values to 0 in R?
- How to divide data frame row values by row variance in R?
- How to sort an R data frame column without losing row names?
- How to divide the row values by row mean in R data frame?
- How to divide the data frame row values in R by row median?
- How to divide the row values by row sum in R data frame?
- How to join two data frames with the same row order using dplyr in R?
- How to divide data frame rows in R by row minimum?
- How to divide data frame rows in R by row maximum?
- How to make list of data frames in R?
Advertisements