Difference between rbind() and bind_rows() in R

前端 未结 3 1043
盖世英雄少女心
盖世英雄少女心 2020-12-08 14:36

On the web,i found that rbind() is used to combine two data frames and the same task is performed by bind_rows()

3条回答
  •  没有蜡笔的小新
    2020-12-08 15:02

    Apart from few more differences, one of the main reasons for using bind_rows over rbind is to combine two data frames having different number of columns. rbind throws an error in such a case whereas bind_rows assigns "NA" to those rows of columns missing in one of the data frames where the value is not provided by the data frames.

    Try out the following code to see the difference:

    a <- data.frame(a = 1:2, b = 3:4, c = 5:6)
    b <- data.frame(a = 7:8, b = 2:3, c = 3:4, d = 8:9)
    

    Results for the two calls are as follows:

    rbind(a, b)
    > rbind(a, b)
    Error in rbind(deparse.level, ...) : 
      numbers of columns of arguments do not match
    
    library(dplyr)
    bind_rows(a, b)
    > bind_rows(a, b)
      a b c  d
    1 1 3 5 NA
    2 2 4 6 NA
    3 7 2 3  8
    4 8 3 4  9
    

提交回复
热议问题