new strip_splits function removes splitting variables from the data frames returned by ddply.
rename moved in from reshape, and rewritten.
new match_df function makes it easy to subset a data frame to only contain values matching another data frame. Inspired by http://stackoverflow.com/questions/4693849.
**ply now works when passed a list of functions
*dply now correctly names output even when some output combinations are missing (NULL) (Thanks to bug report from Karl Ove Hufthammer)
*dply preserves the class of many more object types.
a*ply now correctly works with zero length margins, operating on the entire object (Thanks to bug report from Stavros Macrakis)
join now implements joins in a more SQL like way, returning all possible matches, not just the first one. It is still a (little) faster than merge. The previous behaviour is accessible with match = "first".
join is now more symmetric so that join(x, y, "left") is closer to join(y, x, "right"), modulo column ordering
named.quoted failed when quoted expressions were longer than 50 characters. (Thanks to bug report from Eric Goldlust)
rbind.fill now correctly maintains POSIXct tzone attributes and preserves missing factor levels
split_labels correctly preserves empty factor levels, which means that drop = FALSE should work in more places. Use base::droplevels to remove levels that don’t occur in the data, and drop = T to remove combinations of levels that don’t occur.
vaggregate now passes ... to the aggregation function when working out the output type (thanks to bug report by Pavan Racherla)