As prolific as the CRAN website is of packages, there are several packages to R that succeeds in standing out for their wide spread use (and quality), Hadley Wickhams ggplot2 and plyr are two such packages.



And today (through twitter) Hadley has updates the rest of us with the news:

just released new versions of plyr and ggplot2. source versions available on cran, compiled will follow soon #rstats

Going to the CRAN website shows that plyr has gone through the most major update, with the last update (before the current one) taking place on 2009-06-23. And now, over a year later, we are presented with plyr version 1, which includes New functions, New features some Bug fixes and a much anticipated Speed improvements.

ggplot2, has made a tiny leap from version 0.8.7 to 0.8.8, and was previously last updated on 2010-03-03.

Me, and I am sure many R users are very thankful for the amazing work that Hadley Wickham is doing (both on his code, and with helping other useRs on the help lists). So Hadley, thank you!

Here is the complete change-log list for both packages:



plyr 1.0 (2010-07-02) —————————————————

(taken from the CRAN website)

New functions:

* arrange, a new helper method for reordering a data frame.

* count, a version of table that returns data frames immediately and that is

much much faster for high-dimensional data.

* desc makes it easy to sort any vector in descending order

* join, works like merge but can be much faster and has a somewhat simpler

syntax drawing from SQL terminology

* rbind.fill.matrix is like rbind.fill but works for matrices, code

contributed by C. Beleites

Speed improvements

* experimental immutable data frame (idata.frame) that vastly speeds up

subsetting – for large datasets with large numbers of groups, this can yield

10-fold speed ups. See examples in ?idata.frame to see how to use it.

* rbind.fill rewritten again to increase speed and work with more data types

* d*ply now much faster with nested groups

New features:

* d*ply now accepts NULL for splitting variables, indicating that the data

should not be split

* plyr no longer exports internal functions, many of which were causing

clashes with other packages

* rbind.fill now works with data frame columns that are lists or matrices

* test suite ensures that plyr behaviour is correct and will remain correct

as I make future improvements.

Bug fixes:

* **ply: if zero splits, empty list(), data.frame() or logical() returned,

as appropriate for the output type

* **ply: leaving .fun as NULL now always returns list

(thanks to Stavros Macrakis for the bug report)

* a*ply: labels now respect options(stringAsFactors)

* each: scoping bug fixed, thanks to Yasuhisa Yoshida for the bug report

* list_to_dataframe is more consistent when processing a single data frame

* NAs preserved in more places

* progress bars: guaranteed to terminate even if **ply prematurely terminates

* progress bars: misspelling gives informative warning, instead of

uninformative error

* splitter_d: fixed ordering bug when .drop = FALSE

ggplot2 0.8.8 (2010-07-02) —————————————-

(taken from the CRAN website)

Bug fixes:

* coord_equal finally works as expected (thanks to continued prompting from Jean-Olivier Irisson)

* coord_equal renamed to coord_fixed to better represent capabilities

* coord_polar and coord_polar: new munching system that uses distances (as defined by the coordinate system) to figure out how many pieces each segment should be broken in to (thanks to prompting from Jean-Olivier Irisson)

* fix ordering bug in facet_wrap (thanks to bug report by Frank Davenport)

* geom_errorh correctly responds to height parameter outside of aes

* geom_hline and geom_vline will not impact legend when used for fixed intercepts

* geom_hline/geom_vline: intercept values not set quite correctly which caused a problem in conjunction with transformed scales (reported by Seth Finnegan)

* geom_line: can now stack lines again with position = “stack” (fixes #74)

* geom_segment: arrows now preserved in non-Cartesian coordinate system (fixes #117)

* geom_smooth now deals with missing values in the same way as geom_line (thanks to patch from Karsten Loesing)

* guides: check all axis labels for expressions (reported by Benji Oswald)

* guides: extra 0.5 line margin around legend (fixes #71)

* guides: non-left legend positions now work once more (thanks to patch from Karsten Loesing)

* label_bquote works with more expressions (factors now cast to characters, thanks to Baptiste Auguie for bug report)

* scale_color: add missing US spellings

* stat: panels with no non-missing values trigged errors with some statistics. (reported by Giovanni Dall’Olio)

* stat: statistics now also respect layer parameter inherit.aes (thanks to bug report by Lorenzo Isella and investigation by Brian Diggs)

* stat_bin no longer drops 0-count bins by default

* stat_bin: fix small bug when dealing with single bin with NA position (reported by John Rauser)

* stat_binhex: uses range of data from scales when computing binwidth so hexes are the same size in all facets (thanks to Nicholas Lewin-Koh for the bug report)

* stat_qq has new dparam parameter for specifying distribution parameters (thanks to Yunfeng Zhang for the bug report)

* stat_smooth now uses built-in confidence interval (with small sample correction) for linear models (thanks to suggestion by Ian Fellows)

* sta