Skip to content
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

[R-Forge #5158] rbindlist documentation #333

Closed
arunsrinivasan opened this issue Jun 8, 2014 · 0 comments
Closed

[R-Forge #5158] rbindlist documentation #333

arunsrinivasan opened this issue Jun 8, 2014 · 0 comments
Assignees
Milestone

Comments

@arunsrinivasan
Copy link
Member

Submitted by: Alexandre Sieira; Assigned to: Arun ; R-Forge link

I have come across some behaviour in rbindlist that look unexpected to me:

rbindlist(list(data.table(a=1, b=2), data.table(b=4, a=3)))
#    a b
#1: 1 2
#2: 4 3

So it appears to assume (without checking) that all objects have not only the same column names but also the same column order. So a value assigned to column ‘a’ in the second object was used for column ‘b’ in the end result (and vice-versa).

I know the documentation says rbindlist uses the column types from the first entry of the list, but I didn’t see any mention to column order or names anywhere.

I suggest that column names are matched, even if they are not in the same order. Perhaps a use.names parameter could be used to ask for this behaviour to avoid breaking backwards compatibility.

Or, at the very least, I suggest the documentation of rbindlist be updated to explicitly mention that the columns will be considered by position only, and that callers need to ensure the column orders of all objects match exactly. And that a warning is issued by rbindlist when the column names don’t match.

@arunsrinivasan arunsrinivasan added this to the v1.9.4 milestone Jun 19, 2014
@arunsrinivasan arunsrinivasan self-assigned this Jun 20, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant