Самый быстрый способ вертикального связывания (rbind / bind_rows) двух больших фреймов данных со многими столбцами? - PullRequest
0 голосов
/ 09 ноября 2018

Меня особенно интересует эффективное решение для связывания двух фреймов данных с одинаковыми столбцами в одном и том же порядке. Я пытаюсь оставаться в рамках 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

Есть ли в base или dplyr что-либо, что соответствует производительности data.table в этом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...