plyr's merge: Join by any other name.
Sample AstRoot: (merge $leftFrame $rightFrame allLeftFlag allRightFlag)
Joins two frames; all columns with the same names will be the join key. If
you want to join on a subset of identical names, rename the columns first
(otherwise the same column name would appear twice in the result).
If the client side wants to allow named columns to be merged, the client
side is reponsible for renaming columns as needed to bring the names into
alignment as above. This can be as simple as renaming the RHS to match the
LHS column names. Duplicate columns NOT part of the merge are still not
allowed - because the resulting Frame will end up with duplicate column
names which blows a Frame invariant (uniqueness of column names).
If allLeftFlag is true, all rows in the leftFrame will be included, even if
there is no matching row in the rightFrame, and vice-versa for
allRightFlag. Missing data will appear as NAs. Both flags can be true.