To clear up (hopefully) these points for completeness ... > So it seems both our mental models are somewhat wrong - for me, Y isn't > necessarily the larger table, for you Y isn't necessarily the subset.
Perhaps it helps to recall what inspired data.table in the first place: A[B] syntax in base. See FAQ 2.14. Rightly or wrongly, that's really how I think about X[Y]; i.e., just like matrix A[B] but extended to more dimensions each of potentially different type. > The reason I like thinking in joins is I prefer infix syntax. More > elegant to me to say setkey(Y, a, b) %lj% setkey(X, a, b) than setkey(X, > a, b)[setkey(Y, a, b)], and the chaining versus nested is easy as well... > > X[Y][Z] => (X %rj% Y) %rj% Z > X[Y[Z]] => X %rj% (Y %rj% Z) Interesting. Have you defined these infix aliases yourself and that's how you use data.table then? How to control the infix op by passing arguments such as nomatch=0|NA, roll, mult? > I was wondering what the differences/similarities there were to merge(). See FAQ 1.12: "What is the dierence between X[Y] and merge(X,Y)?" Matthew _______________________________________________ datatable-help mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
