Merging more than 2 dataframes in R by rownames

后端 未结 4 2024
醉梦人生
醉梦人生 2020-12-04 19:28

I gather data from 4 df\'s and would like to merge them by rownames. I am looking for an efficient way to do this. This is a simplified version of the data I have.

4条回答
  •  孤城傲影
    2020-12-04 20:01

    Three lines of code will give you the exact same result:

    dat2 <- cbind(df1, df2, df3, df4)
    colnames(dat2)[-(1:7)] <- paste(paste('V', rep(1:100, 2),sep = ''),
                                rep(c('x', 'y'), each = 100), sep = c('.'))
    all.equal(dat,dat2)    
    

    Ah I see, now I understand why you are getting into so much pain. Using the old for loop surely does the trick. Maybe there are even more clever solutions

    rn <- rownames(df1)
    l <- list(df1, df2, df3, df4)
    dat <- l[[1]]
    for(i in 2:length(l)) {
      dat <- merge(dat, l[[i]],  by= "row.names", all.x= F, all.y= F) [,-1]
      rownames(dat) <- rn
    }
    

提交回复
热议问题