垂直绑定(rbind / bind_rows)具有许多列的两个大型数据帧的最快方法?

时间:2018-11-09 04:50:32

标签: r dplyr rbind

我特别感兴趣的是一种有效的解决方案,用于以相同顺序重新绑定具有相同列的两个数据帧。我试图停留在tibble / dplyr框架内,以避免将对象连续转换为不同的类,但是我似乎找不到一种类似于data.table性能的方法。

示例:

require(tidyverse)
require(data.table)

# create tibble and data.table
tb2 <- tb <- as_tibble(matrix(data=rep(1:5, 20000), ncol=20000, nrow=5, dimnames=list(NULL, paste0('c',1:20000))))
dt2 <- dt <- as.data.table(tb)

system.time(temp1 <- rbind(tb, tb2))       # 0.2s
system.time(temp2 <- bind_rows(tb, tb2))   # 31s
system.time(temp3 <- rbind(dt, dt2))       # 0.02s

在这种情况下,basedplyr中是否有任何与data.table的性能相匹配的东西?

0 个答案:

没有答案