title: dplyr bind_rows execution time exponential
body: <p>I've got a list (length = 5000) of tibbles that I want to merge. They've all got the same columns so I thought of merging using <code>dplyr::bind_rows</code>. On the face of it binding rows per each added tibble is very quick, however the execution time increases exponentially instead of linearly as more tibbles are being added.
  Having done some googling, it's very much like the bug observed here: <a href="https://github.com/tidyverse/dplyr/issues/1396" rel="noreferrer">https://github.com/tidyverse/dplyr/issues/1396</a>. Even though the bug is supposed to have been fixed in the bind_rows internals, I'm still seeing an exponential increase in elapsed time per tibble.</p>
  <pre><code>library(foreach)
  library(tidyverse)
  set.seed(123456)
  tibbles &lt;- foreach(i = 1:200) %do% {
                tibble(a = rnorm(10000), 
                       b = rep(letters[1:25], 400), 
                       c = rnorm(10000))
  }
  times &lt;- foreach(i = 1:200) %do% {
              system.time(tibbles[1:i] %&gt;% 
                              purrr::reduce(bind_rows))
  }
  
  times %&gt;% 
       map_dbl(.f = ~.x[3]) %&gt;% 
       plot(ylab = &quot;time [s] per added tibble&quot;)
  </code></pre>
  <p>Any ideas why this is the case and how to solve it?</p>
  <p>Thanks.</p>
  <p><a href="https://i.stack.imgur.com/CTrEj.png" rel="noreferrer"><img src="https://i.stack.imgur.com/CTrEj.png" alt="elapsed_time" /></a></p>