rbind(x,y)和rbind(y,x)有什么区别?
为什么我问:出于绝望,我尝试了两种方法,并注意到其中一个有效。其中rbind(x,y)给了我Error: charToDate string is not in an unambiguous format,而rbind(y,x)没有。
注意:我不能提供一个可重复的例子,因为我不知道是什么导致了这种差异。
发布于 2020-02-05 04:03:43
首先,行的顺序是不同的。rbind按值在参数列表中出现的顺序组合值。
但是错误的原因很可能是S3方法分派造成的。根据函数的第一个参数的class(),R中的函数可以有不同的行为。如果运行methods(rbind),您可以看到不同的方法。在没有加载其他包的base R中,这是一个特殊的rbind.data.frame方法。因此,也许在您的例子中,x或y中只有一个是data.frame。如果您加载了其他包,则可能加载了其他特殊版本的rbind。
发布于 2020-02-05 06:08:01
作为对问题标题的补充,我认为运行以下基准测试可能会有用,它给出了与我预期相反的结果。
x <- data.frame(x = rnorm(100000), y = rnorm(100000))
y <- data.frame(x = rnorm(1), y = rnorm(1))
microbenchmark::microbenchmark(rbind(x, y), rbind(y, x))
#> Unit: milliseconds
#> expr min lq mean median uq max neval cld
#> rbind(x, y) 4.077496 4.894125 7.351411 5.252737 7.218941 27.39923 100 a
#> rbind(y, x) 3.385937 3.728124 6.426094 3.980144 5.643514 29.56971 100 ahttps://stackoverflow.com/questions/60064652
复制相似问题