data.table 1.9.4 available from CRAN

A new version of the data.table package was released by its maintainers to CRAN. This version should work with the current version of the photobiology packages. Users of my packages should update data.table. At the moment a binary package for OS X seems not to be available, until it becomes available, you will need to install from source on Mac computers, which requires instalation of Xcode and accepting its license. For Windows, binary is available from CRAN.

ggplot2 version 1.0

ggplot2 version 1.0 has been released last week. Last March the author of this package declared a “feature freeze”. This means that no new functionality will be added in the future, although the package will continue to be maintained and kept working with future versions of R. No changes to our suite of packages or its documentation were triggered by this update.

In the future extensions to ggplot2 will be in separate packages. Two good examples are ggmap and ggtern. ggmap can be used to plot data (using regular ggplot syntax) on top of a map. ggtern adds functions for plotting ternary plots.

data.table := an improved data.frame

I started using a package called data.table just yesterday. I re-wrote the whole of the MayaCalc package to use data.table instead of data.frame. Got it working in a few hours. Syntax is clearer and very concise. As a bonus everything should execute much faster (x10 to x30). I will time MayaCalc today after checking that the results are o.k.
Documentation for data.table is a bit terse, I will write some examples here in a few days’ time.

Be aware though that the semantics is really different when used as an argument to a function. If you use the := operator you achieve the equivalent of passing the data.table argument by REFERENCE rather than the normal R convention of passing all arguments by COPY. This is much faster for large data tables as copying is avoided, but you should be careful even if you understand the difference between these two semantics. If you don’t, do not use data.table before you fully understand the difference and all its implications.