rbind dataframes with a different column name

前端 未结 5 542
伪装坚强ぢ
伪装坚强ぢ 2020-11-27 20:28

I\'ve 12 data frames, each one contains 6 columns: 5 have the same name, 1 is different. Then when I call rbind() I get:

Error in match.names(cla         


        
5条回答
  •  情书的邮戳
    2020-11-27 20:34

    My favourite use of mapply:

    Example Data

    a <- data.frame(a=runif(5), b=runif(5))
    > a
              a         b
    1 0.8403348 0.1579255
    2 0.4759767 0.8182902
    3 0.8091875 0.1080651
    4 0.9846333 0.7035959
    5 0.2153991 0.8744136
    

    and b

    b <- data.frame(c=runif(5), d=runif(5))
    > b
              c         d
    1 0.7604137 0.9753853
    2 0.7553924 0.1210260
    3 0.7315970 0.6196829
    4 0.5619395 0.1120331
    5 0.5711995 0.7252631
    

    Solution

    Using mapply:

    > mapply(c, a,b)    #or as.data.frame(mapply(c, a,b)) for a data.frame
                  a         b
     [1,] 0.8403348 0.1579255
     [2,] 0.4759767 0.8182902
     [3,] 0.8091875 0.1080651
     [4,] 0.9846333 0.7035959
     [5,] 0.2153991 0.8744136
     [6,] 0.7604137 0.9753853
     [7,] 0.7553924 0.1210260
     [8,] 0.7315970 0.6196829
     [9,] 0.5619395 0.1120331
    [10,] 0.5711995 0.7252631
    

    And based on @Marat's comment below:

    You can also do data.frame(mapply(c, a, b, SIMPLIFY=FALSE)) or, alternatively, data.frame(Map(c,a,b)) to avoid double data.frame-matrix conversion

提交回复
热议问题