I have 4 data frames all with the same number of columns and identical column names.
The order of the columns is different.
I want to combine all 4 data frames together and match them with the column name.
            Asked
            
        
        
            Active
            
        
            Viewed 1,473 times
        
    -7
            
            
         
    
    
        Balan
        
- 421
- 6
- 12
 
    
    
        Chad Coleman
        
- 69
- 1
- 8
- 
                    1check out `merge` – holzben Oct 14 '16 at 14:19
- 
                    1Which data frame has the desired order? Or does it not matter? A reproducible example with a few things that you tried would help. btw 'merge' is not the right function for this as there are no key columns. – Pierre L Oct 14 '16 at 14:20
- 
                    Take a look at `rbind` – ytk Oct 14 '16 at 14:34
- 
                    2Here you have how to make a great R reproducible example when you want an answer. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Enrique Oct 14 '16 at 14:41
2 Answers
0
            Working Azure ML - This was the best option I found to automate this merge.
df <- maml.mapInputPort(1)
df2 <- maml.mapInputPort(2) 
if (length(df2.toAdd <- setdiff (names(df), names(df2))))
df2[, c(df2.toAdd) := NA]
if (length(df.toAdd <- setdiff (names(df2), names(df))))
df[, c(df.toAdd) := NA]
df3 <- rbind(df, df2, use.names=TRUE)
maml.mapOutputPort("df3");
 
    
    
        Chad Coleman
        
- 69
- 1
- 8
0
            
            
        Suppose your 4 data frames are named df1, df2, df3 and df4, since the number of columns and the column names are identical, then why not this:
cl <- sort(colnames(df1))
mrg <- rbind(df1[,cl], df2[,cl], df3[,cl], df4[,cl])
If you want to have them in a specific order of columns, for example the order of columns in df2, then you can do this:
mrg <- mrg[,colnames(df2)]
 
    
    
        989
        
- 12,579
- 5
- 31
- 53