在网络上,我发现 rbind() 用于组合两个数据帧,并且 bind_rows() 函数执行相同的任务。

然后我不明白这两个功能之间的区别是什么?使用哪个更有效?

最佳答案

除了几处区别之外,在bind_rows上使用rbind的主要原因之一是合并具有不同列数的两个数据帧。在这种情况下,rbind会引发错误,而bind_rows将“NA”分配给数据帧之一未提供值的数据帧中缺少的那些列行。

尝试以下代码以查看区别:

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)

这两个调用的结果如下:
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

关于r - R中rbind()和bind_rows()之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42887217/

10-12 17:34