-
Notifications
You must be signed in to change notification settings - Fork 992
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cbindlist, mergelist #4370
base: master
Are you sure you want to change the base?
cbindlist, mergelist #4370
Conversation
Generated via commit 5952dd8 Download link for the artifact containing the test results: ↓ atime-results.zip Time taken to finish the standard R installation steps: 11 minutes and 17 seconds Time taken to run |
@jangorecki I broke this down into digestible parts with Graphite's |
Nice, I would be happy to do it myself but these days I am not able to volunteer my free time and there is no sponsor as in the past. |
cbindlist
add function cbindlist #2576: very much likecbind()
ordata.table()
, but better control over copies, retains key/index.mergelist
[R-Forge #2461] Faster version of Reduce(merge, list(DT1,DT2,DT3,...)) called mergelist (a la rbindlist) #599: supportsleft, inner, full, right, semi, anti, cross
joins andmult
argument, implemented aroundbmerge
:dtmerge
callsbmerge
and process its results to give indices ready to subsetx
andi
tables. IMOdtmerge
could be used to simplify[.data.table
as well.mergepair
callsdtmerge
, gets indices, use them to expand or subsetx
andi
, then it stacks them usingcbindlist
.mergelist
loops aroundmergepair
, avoids any copies inside, once joining finished, it then ensure that expected objects are copied.mult="error"
[R-Forge #1654] Allow mult="error" #655: implemented insidebmerge
partially, because not hooked in
[.data.table
, this should go as a separate PR:[.data.table
#1717extra testing vs SQLite db, for
how="left|inner|full|right"