R 2.9.0 is released
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Fri Apr 17 10:56:19 CEST 2009
I've rolled up R-2.9.0.tar.gz a short while ago. This is a development
release which contains a number of new features.
Also, a number of mostly minor bugs have been fixed. See the full list
of changes below.
You can get it (later today) from
http://cran.r-project.org/src/base/R-2/R-2.9.0.tar.gz
or wait for it to be mirrored at a CRAN site nearer to you. In case of
impatience, try http://www.biostat.ku.dk/~pd/R-release
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:
70447ae7f2c35233d3065b004aa4f331 INSTALL
433182754c05c2cf7a04ad0da474a1d0 README
4f004de59e24a52d0f500063b4603bcb OONEWS
ff4bd9073ef440b1eb43b1428ce96872 ONEWS
7861f511a3f8e8598c9b84d65e93c389 NEWS
7abcbbc7480df75a11a00bb09783db90 THANKS
070cca21d9f8a6af15f992edb47a24d5 AUTHORS
a6f89e2100d9b6cdffcea4f398e37343 COPYING.LIB
eb723b61539feef013de476e68b5c50a COPYING
020479f381d5f9038dcb18708997f5da RESOURCES
b96e9596f947794c5628712f8016aa90 FAQ
a5b79a2bc1372136cda4674b5f46d146 R-2.9.0.tar.gz
a5b79a2bc1372136cda4674b5f46d146 R-latest.tar.gz
This is the relevant part of the NEWS file:
CHANGES IN R VERSION 2.9.0
SIGNIFICANT USER-VISIBLE CHANGES
o expand.grid() by default no longer coerces strings into factors.
NEW FEATURES
o Package 'Matrix' is now a recommended package contained in the
basic R distribution. It provides S4 classes and methods for
dense and sparse matrices, often by using the numerical
libraries Lapack and from the SuiteSparse collection CHOLMOD,
CSparse, and SPQR among others.
o pdf() and postscript() gain a 'useKerning' argument to place
strings using kerning (which had previously been ignored in
display but not in strwidth), based in part on an idea and
code from Ei-ji Nakama. The default is TRUE.
Kerning involving spaces is now ignored (it was previously
only used in the computation of string widths).
o seq.default() and seq.int() ensure that the result is within the
interval [from, to] even when the last value would previously
have been slightly out of range because of the allowance for
rounding error in computing the number of elements.
o boxplot() gains a simple 'matrix' method, enabling boxplot(mat)
instead of boxplot(data.frame(mat)).
o zip.file.extract() gains an optional 'dir' argument (but use
unzip() instead).
o source() with 'encoding' specified (and not as "unknown") marks
the encoding of character strings in Latin-1 and UTF-8
locales.
o parse(text=z) now marks the encoding of character strings in
Latin-1 and UTF-8 locales if 'z' is of known encoding (that is
all elements are either ASCII or marked as Latin-1 or UTF-8).
o sprintf() does stricter error checking on input formats to
avoid passing invalid formats to the OS (which have a tendency
to crash under such inputs).
o expand.grid() gains a 'stringsAsFactor' argument to ask for
automatic conversion of character vectors to factors (which
happened for many years but was not previously documented, and
is no longer the default).
o bxp() now coputes the 'ylim' including the outliers only if
'outline = TRUE'. (Wish of PR#13196)
o barplot() gains a 'args.legend' argument. (Wish of PR#13265).
o RweaveLatexSetup() now accepts all (and not just some) options
passed through from Sweave()
o cumsum(x) and cumprod(x) for double precision x now use a long
double accumulator where available and so more closely match
sum() and prod() in potentially being more accurate.
o plot() methods for "stepfun" (and hence "ecdf") gain an 'col'
argument, allowing to set all three colors simultaneously.
o Iterating over a factor in a for loop now coerces to a character
vector (rather than using the integer codes).
o data.frame() now recycles columns of list arguments, not just
vectors and factors.
o plot.ts(plot.type="multiple") now makes use of *.lab and
*.axis graphical parameters (wish of PR#13134 and 13135).
o Classes can be exported from a name space using the NAMESPACE
file directive 'exportClassPattern' which has the same syntax
as 'exportPattern'.
o strftime() now converts its first argument with as.POSIXlt()
and so is no longer an alias for format.POSIXLt.
o body<-() now treats list values consistently with other
types: they no longer need to be wrapped in a list() call.
o option("pdfbrowser") is now set on Windows as well as on
Unix-alikes.
o object.size() now returns an object of class "object_size" and
has a print() method.
o [col/row]Sums(), *Means() now have an additional '...' argument,
so that they can more easily be turned into generic functions.
o Package 'tools' contains dependsOnPkgs() to compute reverse
dependencies.
o Strict type checking is now turned on: this catches more
internal corruptions, and some badly written contributed code.
o There are new functions in package 'tcltk', tk_choose.files(),
tk_choose.dir() and tk_messageBox(), analogues of functions
available on Windows (the last is an analogue of winDialog).
o Sys.glob() now does tilde expansion on all platforms.
o read.table() and friends gain a 'fileEncoding' argument to
make re-encoding of input just a little bit simpler.
o grep() gains an 'invert' argument mimicking 'grep -v/--invert'.
o strwrap() now allows a separate prefix for the first line.
o grep() has a more efficient sibling grepl() that returns a
logical vector.
o xfig() has new arguments 'defaultFont' and 'textSpecial'
contributed by Sebastian Fischmeister.
o parse() and parse_Rd() now point to syntax errors in the
reported error context, and include the filename and line and
column numbers so smart text editors can jump to the error
location.
o str(<1d-array>) now writes "[1:n(1d)]" instead of the previous
less clear "[, 1:n]".
o New function testInstalledPackage() in package 'tools' allows
the examples (and if they were installed) any package-specific
tests to be run on an installed package.
testInstalledPackages() can run all the examples and tests in
the standard and/or recommended packages. Also
testInstalledBasic() can run the basic tests (if installed).
o file.copy() now has a 'recursive' argument.
o Errors in setOldClass() will cause a previous definition to be
restored.
o Ambiguities in class inheritance and method selection resulting
from duplicates in superclasses are now resolved by requiring
(if possible) consistency with all the superclass inheritance. The
rules for method selection have been revised to take advantage of
the improved ordering.
See ?Methods and the reference there related to inheritance.
o New function unzip() in package 'utils' to expand or list zip
archives.
o Replacement functions for class() and oldClass() will unset
the S4 bit when the replacement can't be an S4 object;
oldClass() will return the S3 class for S4 objects with slot
.S3Class.
o clip() takes extra steps to avoid the next graphics call
resetting the clip region.
o New function sample.int() to provide documented access to the
internal part of sample() (sampling from seq_len(n)).
o New version of withVisible() for better handling of cases like
withVisible(eval.parent(....)). Moved to package 'base' with a
view to replace .Internal(eval.with.vis) in source() later.
o showClass() which is also used to auto-print class definitions, now
mentions the package where the class comes from, if there is one.
o simulate(obj) now also works for "glm" objects and for weighted
fits, thanks in part to contributions from Ben Bolker and
Heather Turner. There is now a means to extend the methods
available for "glm" objects, as glm families can have an
optional 'simulate' component.
o S4 classes that inherit from any of the "structure" classes or
from "vector" will turn on methods for all the "Ops" group of
functions when the package containing the classes is
loaded. See class?structure.
o A mechanism now allows S4 classes to inherit from object types
"environment", "externalptr" and symbol ("name"). See ?setClass.
o demo() gains 'echo' and 'ask' arguments, with defaults similar
to example().
o library() no longer checks for the packages merged during the
re-organization of 1.9.0.
o New function poisson.test() in package 'stats' for exact test
of rates and rate ratios.
o New function isdebugged() indicates whether its argument has the
debug flag set or not.
o ls.str() [via print method] now also works when some objects in
the environment are missing().
o Subsetting S4-objects (without an explicit "[" method) no longer
preserves the class in cases like setClass("C",
contains="list"); This reverts a "bug fix" activated in R 2.8.0.
o .packages() and .find.packages() no longer check the package
info for installed packages with dumped metadata, since this
was checked when the package was installed. .packages() only
considers such packages to be validly installed (any others
were installed in a long-obsolete version of R). Both changes
speed up searches in libraries of thousands of packages().
o boxplot() uses butt line endings for its median line
(suggestion of Uwe Ligges, PR#13553).
o S4 objects passed to a non-default S3 method will be converted
to a valid S3 object with the S3 class. See the section on
inheriting from non-S4 classes in ?Classes.
o A new class "nonStructure" has been defined; classes that extend
a vector class but that should lose their slots under Math or
Ops functions should extend this class. See class?nonStructure.
o axis.POSIXct() now plots in the timezone marked for its inputs
(if any) rather than in the local time. The latter was a
deliberate choice, but is easy to select by removing the
'tzone' attribute. (Suggestion of Dan Kelley.)
o A new function classesToAM() returns an adjacency matrix
representing the inheritance of the classes specified. Allows
better human examination of the patterns, e.g. by using the
matrix as input to one of the graph packages (see the
documentation).
o X11options(antialias = "none") now works, for consistency with
X11().
o sprintf() now allows zero-length arguments (with a zero-length
result). (Suggestion of Bill Dunlap.)
o unlink() is now able to remove broken symbolic links on
Unix-alikes.
o New selectSuperClasses() utility.
o HoltWinters() now allows parameters alpha and beta to be fixed
at 0 and hence beta = FALSE and gamma = FALSE are used to
specify restricted models.
o A new function smoothScatter has been added to package
'graphics'. It is appropriate for very dense scatter plots
and uses density estimation and color to reflect density of
plotting.
DEPRECATED & DEFUNCT
o allGenerics() is defunct.
o Use of allocVector(CHARSXP ...) is defunct and gives an error.
o The compatibility define for graphics structure NewDevDesc in
GraphicsDevice.h has been removed.
o Support for versioned installs (R CMD INSTALL
--with-package-versions
and install.packages(installWithVers = TRUE)) has been removed.
Packages installed with versioned names will be ignored.
o The numeric and power(0.5) forms of argument to make.link()
which were deprecated in 2.4.0 are now defunct: use power()
directly.
o Conversion to Sd and Ssgm by R CMD Rdconv is now defunct.
o Support for R --gui=gnome is now defunct (and package
gnomeGUI has been withdrwan as it used a long-obsolete version
of GNOME).
o R CMD SHLIB on Windows will call the first target (not 'all') in
Makevars[.win] in future versions: so make 'all' the first
target if you have any.
UTILITIES
o R CMD build now also uses a Makevars[.win] file for cleaning
up src/.
o R CMD Rd2dvi and R CMD check are now able to cope with Cyrillic
characters in UTF-8 if environment variable _R_CYRILLIC_TEX_
is set to a non-empty value and the latex system has suitable
fonts (thanks to a hint from Alexey Shipunov).
o New function rtags() in package 'utils' that provides etags-like
indexing capabilities for R code files.
New front-end script R CMD rtags provides an interface to the
rtags() function (see R CMD rtags --help for details).
o New environment variable R_TEXI2DVICMD to hold the path (if any)
to 'texi2dvi' found at configure time: this now provides the
default to option("texi2dvi").
o massage-Examples.pl has been replaced by the R function
tools:::massageExamples().
o R CMD REMOVE now uses remove.packages() and hence removes all
members of a bundle.
o R CMD SHLIB is now an R script and has a new option -n aka
--dry-run to show what commands would be run. The same code
is used on Unix and Windows.
o R CMD Rdconv has new options --package and --version to set the
corresponding fields in HTML conversion.
o R CMD check runs the package tests with a custom startup file,
currently containing 'options(useFancyQuotes = FALSE)'.
Those tests are run by an R script: using a tests/Makefile
(undocumented) no longer works.
o R CMD config now knows about DYLIB_EXT and SHLIB_EXT, for use
in configure files.
o R CMD BATCH has a new option --no-timing to suppress printing
out the session timing.
o R CMD Rd2dvi can now work on an installed package.
o R CMD check no longer loads package 'tcltk' when checking for
code problems, so more problems may be reported.
o For R CMD SHLIB on Windows the default 'all' target only makes
the DLL, and no longer call targets 'before' and 'after'.
Rd CONVERSION
o Rd files have an optional \Rdversion{} section, which if
missing defaults to 1.0. There is support for version 1.1, a
slightly modified version with the following changes:
- The warnings for \code{} inside example are suppressed.
- Whitespace between arguments in \item and \section is
accepted without a warning (see below).
- $ is treated literally in text, even for latex conversions.
- \ is only an escape before % { } \ .
- \R, \dots and \ldots can be followed by {}, and it is
recommended that they when not followed by whitespace.
- The obsolete interpretation of \Alpha etc is no longer done.
o Rd conversion now handles ^ ~ < > | correctly in non-code
environments (such as \samp), and # and _ even in latex
conversion (but $ still needs to be escaped in version 1.0).
o Whitespace between first and second arguments is now accepted
for \item and \section, e.g. \item{foo} {some value}.
Previously arguments after whitespace were silently ignored,
and a warning is given for version 1.0 files.
o The Rd files created by prompt() and friends are declared to be
version 1.1.
o \alias now supports the escaping of { as well as of %, and this
is recommended.
o parse_Rd(), an experimental parser for Rd files, and Rd2txt(),
Rd2HTML(), Rd2latex() and Rd2ex(), even more experimental
converters, have been added to package 'tools'.
o R CMD check runs the package's Rd files through parse_Rd() for a
stricter syntax check. This can be suppressed by setting
_R_CHECK_RD_PARSE_ to FALSE.
o Added markup \verb, which displays like \code, but parses as
verbatim text. Currently only supported by parse_Rd() and
Rd2HTML().
INSTALLATION
o The shell used by the 'R' script and other shell scripts
intended to be run directly can be specified at installation
time by setting the (precious) configure variable R_SHELL.
o libtool has been updated to 2.2.6a.
o --with-ICU is now the default: this means that ICU will be
used for collation on Mac OS >= 10.4.
o make install-tests can be used to install the test files,
to allowed an installed version of R to be tested -- see the
R-admin manual. This is also supported by the function
testInstalledPackages() in package 'tools'.
o 'make install' using a parallel make should now work.
o 'make check' now always re-makes and re-runs the package
examples, which are now collated in the locale's order (and
not ASCII order).
o configure will now set the default optimization level for
gfortran on x86_64 Linux to -O as -O2 has caused problems with
gfortran 4.3.x.
PACKAGE INSTALLATION
o install.packages() is able to infer that repos=NULL was
intended from the extension on the file name specified as 'pkgs'.
On Mac OS X it now supports local binary packages with .tar.gz
extension. Nonetheless .tgz remains the preferred extension
and is expected in repositories.
It now checks >= version dependencies for dependent packages,
and so will install a newer version of a dependency if needed
and available on the repositories.
The library being installed into is considered when looking
for installed packages if it is not already part of
.libPaths() (as INSTALL already does).
It has a new argument 'Ncpus' to support parallel installs of
source packages.
o HTML links will be resolved first to the standard packages: this
avoids other installed packages diverting help on e.g. qr()
and plot() to themselves. The HTML files are only "touched" if
they have changed.
o A check is done that the R files can be parsed: this both
prevents a broken package without lazy-loading from being
installed and gives better diagnostics.
o install.packages() gains a 'configure.vars' argument, and both
this and 'configure.args' get their defaults from options().
o There is a unified R script for INSTALL on both Unix-alike and
Windows that takes option names used by either in the past.
It adds --no-multiarch to disable building other than the main
sub-architecture, and allows multiple instances of
--configure-args and --configure-vars (which will be
concatenated).
New option --install-tests will install any package-specific
tests.
o Times in the Packaged: and Built: fields are now recorded in
UTC, and in most cases in ISO 8601 format.
C-LEVEL FACILITIES
o A helper function, asCharacterFactor, converts from factors to
character vectors.
BUG FIXES
o The postscript() output for setting text is faster and smaller.
o Subsetting a data frame with duplicate column names without
selecting columns (e.g. z[i,]) no longer makes the column
names unique. This was never documented, but some packages
have assumed it.
o data.frame() no longer ignores row names on objects if the
first name is empty. (PR#13230: this has been the behaviour
for a long time, but apparently undocumented.)
o deparse(control="S_compatible") now never uses backticks.
o X-spline drawing is improved for cases where the control
points are located well off the edges of the device.
The symptom of this problem is the error "reached MAXNUMPTS".
o exists() with mode= "any" will no longer run an active binding's
function.
o format(c(1 + 2i, NA)) no longer has extraneous space in " NA".
o mood.test() could fail in 2.8.x on large samples because of
integer overflow.
o heatmap() without a dendrogram could fail. (PR#13512)
o Checks for missing values will no longer occasionally result in
an infinite loop or stack overflow error, depending on the
compiler. Active bindings are now always considered to be
non-missing.
o Rd conversion was not accepting \p (as in \pkg} or (when using
Perl 5.10.x) \k (as in \kbd) in any preamble text in a
\value{} section, since those are nowadays interpreted by
Perl. (PR#13575)
o if(as.raw(1)) TRUE now works as expected. (PR#13630)
Also, c(as.raw(12), TRUE) or c(raw(3), pi) do.
o duplicated(<data frame>, incomparables = NA) now gives the
intended error message.
o name handling of as.data.frame() has been sanitized somewhat
o Evaluating an assignment expression with a string on the left
hand side no longer destructively changes the string to a symbol
in the expression.
**************************************************
* *
* 2.8 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 2.8.1 patched
NEW FEATURES
o R CMD check has a new argument '--install-args' to pass
command-line arguments to INSTALL.
E.g. --install-args="--docs=normal" on Windows if the HTML
Help Workshop is not installed.
o R-Forge has been added to R_HOME/etc/repositories, so it will
be available interactively in setRepositories().
o The compiled loess() code has been updated to the current
version of dloess from Netlib. This includes patches from Ben
Tyner which correct some errors when degree = 0 and hence
solve PR#13570.
INSTALLATION
o --with-ICU is now supported (and recommended) on Mac OS X using
Apple's supplied port. Note however that the locale category
LC_COLLATE cannot be changed whilst R is running on Apple's
version of ICU.
Configure supports a wider range of ICU versions on other
OSes: version 3.0 should suffice, and 3.2, 3.8 and 4.0 have
been tested.
BUG FIXES
o grid-based plots no longer reset the base text size to the
default 96dpi in cairo-based bitmap devices.
o Rd conversion was incorrectly parsing \\\* and \\\{ (and other
cases with an odd number of backslashes greater than one).
Text conversion of \code{\ etc} was incorrect (a single
backslash stands for itself inside \code).
\code{} inside \examples{} is now fixed up (but the warning
remains, since it will be handled incorrectly in earlier
versions of R).
o as.matrix.data.frame() could fail if coercion changed the
dimension of one of the columns (as e.g. the coercion of a "Surv"
object to a character vector does).
o When extracting part of a complex list structure using [[]]
with a vector index, the extracted part was not marked for
duplication on change. (PR#13411)
o Assigning an additional element to a pairlist/language element
by x[["foo"]] <- value did not name the additional element.
o .Call() and .External() were not accepting "NativeSymbolInfo"
and "NativeSymbol" objects as claimed. (Patch from Olaf
Mersmann.)
o codoc() was missing some default value mismatches with
unescaped backslashes, e.g. final="\\" needs to be written as
final="\\\\" in the Rd file.
The reports on values now give strings in the original quoted
format (with \ and " escaped).
o The $<- method for pairlists (including language objects)
failed to duplicate if NAMED was 2.
o read.table(blank.lines.skip = FALSE) gave a final empty row on
files with less than 5 lines (PR#13433).
o Workaround for a bug in some versions of iconv that was seen
with output lines of more than 10,000 bytes and with
re-encoding requested on an output connection.
o The fullrefman.{dvi,pdf} duplicated part I in part II (at
least on some systems).
o cbind() could crash with a zero-length input and a list result.
o pdf(colormodel = "gray") was setting the stroke colour for fills.
o file.show() with multiple files would only show multiple
copies of the first one. (PR#13469)
o formatC(mode = "character") was documented to work, but
did not. (PR#13474)
o besselI(x,.., expon.scaled=TRUE) now gives accurate results for
x < 1e5 whereas it previously underflowed for x >~= 1500.
Further, besselJ(x,..) also computes up to 1e5 (instead of 1e4).
o str() was incorrectly warning about its option component
'formatNum' set by strOptions().
o nls(algorithm = "port") did not accept the [factor] notation.
(PR#13650)
o The relational (aka "comparison") operators are now binary, also in
a lower level sense, and an expression as "<"(1) is now erronous.
o The 'offset' argument for lm() and glm() is not longer
documented to be allowed to be of length 1: this has not been
true for a long time.
o format.info(x) is now also correct when x has no finite content.
o predict.lm() now works correctly when the fit had more than
one offset (possibly specified both in the formula and as an
argument). This function is called by predict.glm(), so the
same isses are corrected there.
o besselI(x, nu) with nu a negative integer (a singular case) is now
correct. (PR#13556)
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-announce
mailing list