fun.aggregate will always be applied if specified, even if no aggregation occurs
This new version of reshape substantially expands the type of output you can cast into. You can now make nested lists,
cast(m, a ~ b | c) or
cast(m, a ~ b | c + d), and multidimensional arrays,
cast(m, a ~ b ~ c) (or any combination of the two). See the examples in
What else is new?:
iapply, an idempotent apply function that returns results with the same dimensionality as the input (very useful in conjunction with sweep and multidimensional arrays)
rescaler, a function to rescale data.frames variable by variable using a range of different scaling methods
reorder_factor to make it easier to combine and reorder factor levels
stamp, which is kind of a cross between by and cast, and allows for aggregation functions that take an entire data frame. See
?stamp for examples
The big news in this version of reshape is that I've renamed all the functions so they no longer conflict with any built in functions - deshape is now melt (think liquid data) and reshape is now cast (think solidifying data into the form you want).
What's new (apart from the big renaming)?