R News and Updates


Probably A Mammal
I never knew about it at all. Don't know how much I'll ever use it, but that line of code popped up after I updated my packages and loaded ggplot2. Nice way to let you know what's up!


R 2.15.0 is release. It has some nice new features (paste0() caught my attention). Here's the R-halp mailing List details from Peter Dalgaard:

Peter Dalgaard said:
The build system rolled up R-2.15.0.tar.gz (codename "Easter Beagle") at 9:00 this morning. This is the first release of the 2.15 series and contains several new features and changes; see the list below for details.

You can get the source code from


or wait for it to be mirrored at a CRAN site nearer to you.

Binaries for various platforms will appear in due course.

For the R Core Team

Peter Dalgaard

These are the md5sums for the freshly created files, in case you wish
to check that they are uncorrupted:

MD5 (AUTHORS) = cbf6da8f886ccd8d0dda0cc7ffd1b8ec
MD5 (COPYING) = eb723b61539feef013de476e68b5c50a
MD5 (COPYING.LIB) = a6f89e2100d9b6cdffcea4f398e37343
MD5 (FAQ) = c6cf7cff235e9bd3c823e6a1a3d76cd5
MD5 (INSTALL) = 37adac6d0fbadf25b5a40e3f7535415e
MD5 (NEWS) = 31dee994d35636656c9e254bfb819d7c
MD5 (NEWS.html) = 0551e23b675fa9dc709830d1a4ee738c
MD5 (ONEWS) = 0c3e10eef74439786e5fceddd06dac71
MD5 (OONEWS) = b0d650eba25fc5664980528c147a20db
MD5 (R-latest.tar.gz) = 905f638990492618559202cc1e48a867
MD5 (README) = 296871fcf14f49787910c57b92655c76
MD5 (RESOURCES) = a7a02d98a407c3cb8674d067608f14fc
MD5 (THANKS) = 159efc7bd4ae7b23dda07c1d431657bc
MD5 (R-2/R-2.15.0.tar.gz) = 905f638990492618559202cc1e48a867

This is the relevant part of the NEWS file



o The behaviour of unlink(recursive = TRUE) for a symbolic link to
a directory has changed: it now removes the link rather than the
directory contents (just as rm -r does).

On Windows it no longer follows reparse points (including
junctions and symbolic links).


o Environment variable RD2DVI_INPUTENC has been renamed to

o .Deprecated() becomes a bit more flexible, getting an old

o Even data-only packages without R code need a namespace and so
may need to be installed under R 2.14.0 or later.

o assignInNamespace() has further restrictions on use apart from at
top-level, as its help page has warned. Expect it to be disabled
from programmatic use in the future.

o system() and system2() when capturing output report a non-zero
status in the new "status" attribute.

o kronecker() now has an S4 generic in package methods on which
packages can set methods. It will be invoked by X %x% Y if
either X or Y is an S4 object.

o pdf() accepts forms like file = "|lpr" in the same way as

o pdf() accepts file = NULL. This means that the device does NOT
create a PDF file (but it can still be queried, e.g., for font
metric info).

o format() (and hence print()) on "bibentry" objects now uses
options("width") to set the output width.

o legend() gains a text.font argument. (Suggested by Tim Paine,

o nchar() and nzchar() no longer accept factors (as integer
vectors). (Wish of PR#6899.)

o summary() behaves slightly differently (or more precisely, its
print() method does). For numeric inputs, the number of NAs is
printed as an integer and not a real. For dates and datetimes,
the number of NAs is included in the printed output (the latter
being the wish of PR#14720).

The "data.frame" method is more consistent with the default
method: in particular it now applies zapsmall() to
numeric/complex summaries.

o The number of items retained with options(warn = 0) can be set by

o There is a new function assignInMyNamespace() which uses the
namespace of the function it is called from.

o attach() allows the default name for an attached file to be

o bxp(), the work horse of boxplot(), now uses a more sensible
default xlim in the case where at is specified differently from
1:n, see the discussion on R-devel, <URL:

o New function paste0(), an efficient version of paste(*, sep=""),
to be used in many places for more concise (and slightly more
efficient) code.

o Function setClass() in package methods now returns, invisibly, a
generator function for the new class, slightly preferred to
calling new(), as explained on the setClass help page.

o The "dendrogram" method of str() now takes its default for
last.str from option str.dendrogram.last.

o New simple fitted() method for "kmeans" objects.

o The traceback() function can now be called with an integer
argument, to display a current stack trace. (Wish of PR#14770.)

o setGeneric() calls can be simplified when creating a new generic
function by supplying the default method as the def argument.
See ?setGeneric.

o serialize() has a new option xdr = FALSE which will use the
native byte-order for binary serializations. In scenarios where
only little-endian machines are involved (these days, close to
universal) and (un)serialization takes an appreciable amount of
time this may speed up noticeably transferring data between

o The internal (un)serialization code is faster for long vectors,
particularly with XDR on some platforms. (Based on a suggested
patch by Michael Spiegel.)

o For consistency, circles with zero radius are omitted by points()
and grid.circle(). Previously this was device-dependent, but
they were usually invisible.

o NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate,
e.g., also for more generalized matrices.

o PCRE has been updated to version 8.30.

o The internal R_Srcref variable is now updated before the browser
stops on entering a function. (Suggestion of PR#14818.)

o There are 'bare-bones' functions .colSums(), .rowSums(),
.colMeans() and .rowMeans() for use in programming where ultimate
speed is required.

o The formerly internal function .package_dependencies() from
package tools for calculating (recursive) (reverse) dependencies
on package databases has been renamed to package_dependencies()
and is now exported.

o There is a new function optimHess() to compute the (approximate)
Hessian for an optim() solution if hessian = TRUE was forgotten.

o .filled.contour() is a 'bare-bones' function to add a
filled-contour rectangular plot to an already prepared plot

o The stepping in debugging and single-step browsing modes has
changed slightly: now left braces at the start of the body are
stepped over for if statements as well as for for and while
statements. (Wish of PR#14814.)

o library() no longer warns about a conflict with a function from
package:base if the function has the same code as the base one
but with a different environment. (An example is Matrix::det().)

o When deparsing very large language objects, as.character() now
inserts newlines after each line of approximately 500 bytes,
rather than truncating to the first line.

o New function rWishart() generates Wishart-distributed random

o Packages may now specify actions to be taken when the package is
loaded (setLoadActions()).

o options(max.print = Inf) and similar now give an error (instead
of warnings later).

o The "difftime" replacement method of units tries harder to
preserve other attributes of the argument. (Wish of PR#14839.)

o poly(raw = TRUE) no longer requires more unique points than the
degree. (Requested by John Fox.)

PACKAGE parallel:

o There is a new function mcmapply(), a parallel version of
mapply(), and a wrapper mcMap(), a parallel version of Map().

o A default cluster can be registered by the new function
setDefaultCluster(): this will be used by default in functions
such as parLapply().

o clusterMap() has a new argument .scheduling to allow the use of

o There are new load-balancing functions parLapplyLB() and

o makePSOCKCluster() has a new option useXDR = FALSE which can be
used to avoid byte-shuffling for serialization when all the nodes
are known to be little-endian (or all big-endian).


o Non-ASCII vignettes without a declared encoding are no longer

o C/C++ code in packages is now compiled with -NDEBUG to mitigate
against the C/C++ function assert being called in production use.
Developers can turn this off during package development with

o R CMD INSTALL has a new option --dsym which on Mac OS X (Darwin)
dumps the symbols alongside the .so file: this is helpful when
debugging with valgrind (and especially when installing packages
into R.framework). [This can also be enabled by setting the
undocumented environment variable PKG_MAKE_DSYM, since R 2.12.0.]

o R CMD INSTALL will test loading under all installed
sub-architectures even for packages without compiled code, unless
the flag --no-multiarch is used. (Pure R packages can do things
which are architecture-dependent: in the case which prompted
this, looking for an icon in a Windows R executable.)

o There is a new option install.packages(type = "both") which tries
source packages if binary packages are not available, on those
platforms where the latter is the default.
I edited the end of the message for length reasons!


Ambassador to the humans
In adddition to paste0 I'm excited about these three:

There are 'bare-bones' functions .colSums(), .rowSums(),
.colMeans() and .rowMeans() for use in programming where ultimate
speed is required.

There is a new function optimHess() to compute the (approximate)
Hessian for an optim() solution if hessian = TRUE was forgotten.

New function rWishart() generates Wishart-distributed random


ggplot2 .9.1 bug fix released:

Hadley Wickham said:
Should be available from a CRAN mirror near you in the very near
future. This is mostly a bug fix release, so I'd highly recommend
upgrading from 0.9.0 as soon as possible!

The highlight in this release is a new visual testing system by
Winston, which makes it easier for us to pick up news bugs very very


ggplot2 0.9.1


* `ggstructure` and `ggorder`, which call `ggpcp`, no longer have a
`scale` argument since `ggpcp` does not have one.

* built in datasets have been checked to make sure they use characters,
factors and ordered factors appropriately

* `geom_raster` and `annotation_raster` gain new `interpolate` argument for
controlling whether or not rasters are interpolated

* Added `plot` as an alias for `print` for ggplot objects.

* Visual tests have been moved to /visual_test and modified to work with the
vtest package. (Thanks to Winston Chang)

* `geom_dotplot`: now supports stacking. It uses `stackgroups = TRUE` instead
of the usual position="stack", for technical reasons. It also will stack in
the x direction when binning along the y axis. (Thanks to Winston Chang)

* `geom_rug` now allows control over which sides to put the rug lines, with
the `sides` argument. (Thanks to Winston Chang)

* `annotation_logticks`: a new geom that adds tick marks on the inside of the
plotting rectangle that have diminishing spacing for log-10 axes. (Thanks
to Winston Chang)

* Coordinate expansion is now handled by an interaction of the scale and
coord, rather than by the scale only. Also, the `wise` argument is no
longer needed. (Thanks to Winston Chang and Kohske Takahashi)


* `facet_grid` no longer drops duplicate cases (Fixes #443)

* `munch_range` properly reports the x and y range. (Thanks to Winston Chang)

* `stat_bin2d` handles data with NA in the position variables. Error was
triggered when scale was limited to a range smaller than the range of
the data. (Bug reported by Tao Gao; diagnosed and fixed by Brian Diggs)

* `scale_*_identity` will now produce a legend when `guide = "legend"` and no
breaks or labels are supplied (Fixes #453)

* `geom_map` now works with `coord_map` (Fixes #480)

* discrete scales now accept named vectors of labels again (Fixes #427)

* `geom_raster` works better with categorical input (Fixes #463)

* `qplot` no longer uses non-standard evaluation for geom/stat arguments - it
doesn't seem to be needed and was causing problems when qplot was used in
special environments (e.g. in knitr) (Fixes #377)

* `coord_train.polar` and `coord_train.trans` remove NAs from breaks.
(Thanks to Winston Chang. Fixes #422)

* Theta breaks with `coord_polar` have equal angular spacing. (Thanks to
Winston Chang and Kohske Takahashi. Fixes #288)

* Empty data frames are now handled correctly: layers with empty data are
dropped silently, instead of inheriting data from the plot. (Thanks to
Winston Chang. Fixes #31, #332, #506 and #507)

* The alpha value of set colours is now preserved by default. To return to the
old behaviour, set `alpha = 1`. (Fixes #475)

* `scale_*_manual` will throw an error if you have too few values. (Fixes

* `facet_wrap` gets the `as.table` argument back. (Fixes #497)

* `resolution` now returns 1 when range is zero. (Fixes #526)

* Titles are displayed above legend when legend is on top. (Thanks to
Kohske Takahashi. Fixes #432)

* Specifying breaks outside coord limits works. (Thanks to Kohske Takahashi.
Fixes #430)

* `renames_aes` now uses exact matching instead of partial matching. (Thanks
to Winston Chang. Fixes #529)

* `labs()` now works with American spellings. (Thanks to Winston Chang.
Fixes #521)

* `stat_density2d` sets the limits for `kde2d` from the limits of the x and
y scales. (Thanks to Winston Chang)


New release of psych package:

William R Revelle said:
Dear fellow R users.

I have released version 1.2.8 of the psych package. This replaces 1.2.4 from the April release.

The more important changes

o Modified score.irt so that subjects who miss all items or pass all
items are given an estimate based upon the (product) of the
difficulty of the items they miss (pass) and then adjusted based
upon half the quantile difference from 0 (if they miss all items)
and 100 (if they pass all items).

o Modified sim.omega to allow for specifying a general factor. This
allows for tests of not just the bias in the case of no general
factor, but also the ability to detect a general factor. Also
modified it to include calls to omegaSem.

o Modified iclust so that the fit statistic is based upon the
off-diagonal elements unless otherwise specified. Use diagonal
=TRUE to get fits matching previous analyses.

o Added a function (irt.responses) to plot responses as a function of
the latent score for analyzing multiple choice alternatives.

o Added a function, statsBy, to find summary statistics (means,
sample sizes, standard deviations) by a grouping variable. Similar
to describeBy but somewhat easier to use. Also will report (as an
option) the pooled within group correlations. Calculates the within and between group correlations.

This has the normal number of small bug fixes and feature changes requested by various helpful users.

For a full list of changes try
news(Version > "1.2.4",package="psych")

Suggestions for additions and improvements are always welcome and sometimes implemented.



Probably A Mammal
Nice! I love this package. I did notice and see others complain about its speed. Good to know that's improved. On top of that, they've made it even better at conversion and stuff. Definitely a package worth having developed. If you deal with dates and time, it can save you headaches!


Probably A Mammal
Thanks Tr, I'll have to check that out! I've never even looked at httr, before. Wrappers are usually good, if they're done right! I mean, would you prefer learning grid yourself or use ggplot2? lol


R 2.14.2 released:

As promised, the source distribution for R 2.15.2 is now available for download from the master CRAN repository. (Binary distributions for Windows, MacOS and Linux will be available from the CRAN mirror network in the coming days.) This latest point-update — codenamed "Trick or Treat" — improves the performance of the R engine and adds a few minor but useful features. Detailed changes can be found in the NEWS file, but highlights of the improvements include:

New statistical analysis method: Multistratum MANOVA
Hyman's method of constructing monotonic interpolation splines is now available.
Improved support for Polish language users
Functions in the parallel package (such as parLapply) will make use of a default cluster if one is specified.
Improved performance and reduced memory usage for some commonly-used functions including array, rep, tabulate and hist
Increased memory available for data on 64-bit systems (increased to 32Gb from 16Gb)
Several minor bugfixes
There is likely to be at least one further update to the 2.15.x series: a round-up of any further changes will probable be released as 2.15.3 shortly before R 2.16.0 is released, most likely around March 2013.