<div dir="ltr"><div>Re speed: last I checked, new rbindlist was about 5% slower in no-coercion cases and was quite a bit faster in cases where there was coercion.<br><br></div>do.call(rbind is indeed much slower than rbindlist and even if .rbind.data.table took no time to do, it'll still be much slower than rbindlist because of all the dispatching before it gets to .rbind.data.table. That said, I'm pretty sure rbind is now faster than rbind in 1.8.10 in all cases.<br>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Nov 9, 2013 at 11:49 AM, G See <span dir="ltr"><<a href="mailto:gsee000@gmail.com" target="_blank">gsee000@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I really meant that I thought that do.call(rbind, list(a, b)) would be<br>
slower than rbindlist(list(a, b)).  e.g. when you don't know the<br>
length of the list of data.tables<br>
<br>
On Sat, Nov 9, 2013 at 11:44 AM, Arunkumar Srinivasan<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:aragorn168b@gmail.com">aragorn168b@gmail.com</a>> wrote:<br>
> I am not aware of the status now after eddi's recent edits. "rbindlist"<br>
> initially only checked the type of the first data.table's columns. But now I<br>
> guess with eddi's changes, it does look-down and decide based on class<br>
> hierarchy. That is, if column 1 of dt1 is integer, but of dt2 is numeric,<br>
> it's now "numeric", but before it was "integer". I guess this'll affect the<br>
> speed. I've not done any benchmarking yet. But I'm guessing it'll be slower<br>
> than at least the previous version.<br>
><br>
> Eddi, any thoughts on this?<br>
><br>
> Arun<br>
><br>
> On Saturday, November 9, 2013 at 6:38 PM, G See wrote:<br>
><br>
> Isn't rbindlist(myList) faster than do.call(rbind, myList)?<br>
><br>
> Garrett<br>
><br>
> On Sat, Nov 9, 2013 at 11:33 AM, Arunkumar Srinivasan<br>
> <<a href="mailto:aragorn168b@gmail.com">aragorn168b@gmail.com</a>> wrote:<br>
><br>
> GSee, I find this a bit confusing at the moment as well - the convergence of<br>
> "rbind" and "rbindlist" and therefore the future of "rbindlist".<br>
><br>
> `rbindlist` gained speed (to some extent) by assuming things like this and<br>
> skipping checks in the first place. So, should we include checks like this?<br>
> Also, if "rbind" and/or "rbindlist" are made to do the exact same thing,<br>
> then, what's the purpose of "rbindlist"?<br>
><br>
> Any thoughts?<br>
><br>
> Arun<br>
><br>
> On Saturday, November 9, 2013 at 6:29 PM, Eduard Antonyan wrote:<br>
><br>
> Fyi, it's not well documented, but setting use.names=FALSE in rbind would<br>
> replicate rbindlist behavior.<br>
><br>
> I think it's a reasonable FR - if/when all of rbind code goes into C, it<br>
> would be trivial to add.<br>
><br>
> On Nov 9, 2013 10:51 AM, "G See" <<a href="mailto:gsee000@gmail.com">gsee000@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> Please note the inconsistency between the behavior of rbind() and<br>
> rbindlist() below.<br>
><br>
> m1 <- as.data.table(mtcars)<br>
> m2 <- copy(m1)<br>
> rbind(m1[, .SD[1], by=cyl], m2) # Gives warning and binds by name<br>
> rbindlist(list(m1[, .SD[1], by=cyl], m2)) # no warning, and does NOT<br>
> bind by name<br>
><br>
> What do you think about making them have the same behavior and/or<br>
> warning? Personally, I prefer the behavior of rbind(), and would<br>
> prefer to see a warning if column names are ignored like they are with<br>
> rbindlist().<br>
><br>
> Thanks,<br>
> Garrett<br>
> _______________________________________________<br>
> datatable-help mailing list<br>
> <a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
> <a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br>
><br>
> _______________________________________________<br>
> datatable-help mailing list<br>
> <a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
> <a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br>
><br>
><br>
</div></div></blockquote></div><br></div>