R 2.8.0 is released
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Mon Oct 20 11:33:08 CEST 2008
I've rolled up R-2.8.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.8.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
2e66a7217f24f1d7961275438243adc7 NEWS
1ad28cbc84485ccdf4ce5721b34ed645 THANKS
070cca21d9f8a6af15f992edb47a24d5 AUTHORS
a6f89e2100d9b6cdffcea4f398e37343 COPYING.LIB
eb723b61539feef013de476e68b5c50a COPYING
020479f381d5f9038dcb18708997f5da RESOURCES
5717a4e29823dd379e4a6cf82e820eb2 FAQ
5213c9644aec984278b669df1a63a2ce R-2.8.0.tar.gz
5213c9644aec984278b669df1a63a2ce R-latest.tar.gz
This is the relevant part of the NEWS file:
CHANGES IN R VERSION 2.8.0
SIGNIFICANT USER-VISIBLE CHANGES
o var(), cov(), cor(), sd() etc now by default (when 'use' is not
specified) return NA in many cases where they signalled an
error before.
NEW FEATURES
o abbreviate() gains an optional argument 'strict' allowing cheap
and fast strict abbrevation.
o The "lm" methods of add1(), anova() and drop1() warn if they are
mis-used on an essentially exact fit.
o as.array() is now generic, gains a '...' argument.
o New function as.hexmode() for converting integers in hex format.
format.hexmode() and as.character.hexmode() gain an 'upper.case'
argument.
o bitmap() and dev2bitmap() gain support for anti-aliasing.
The default type has been changed to 'png16m', which supports
anti-aliasing.
o Box.test() gains a 'fitdf' argument to adjust the degrees of
freedom if applied to residuals.
o browseURL() has a new argument 'encodeIfNeeded' to use
URLencode() in cases where it seems likely that would be
helpful. (Unfortunately, those are hard to guess.)
o by() gains a 'simplify' argument, passed to tapply().
o capabilities() gains a new argument "tiff" to report if tiff()
is operational.
o chol2inv() now treats <numeric(1)> as a [1 x 1]-matrix.
o cov() and cor() have the option 'use = "everything"' as default,
and so does var() with its default 'na.rm = FALSE'. This
returns NA instead of signalling an error for NA observations.
Another new option is 'use = "na.or.complete"' which is the default
for var(*, na.rm=FALSE).
var(double(0), na.rm= L) now returns NA instead of signalling an error,
for both L = TRUE or FALSE, as one consequence of these changes.
o data.matrix() now tries harder to convert non-numeric columns,
via as.numeric() or as(, "numeric").
o dev.interactive() is able to recognize the standard screen
devices if getOption("device") is a function (as well as by name).
o dev.new() gains a '...' argument which can be used to pass
named arguments which will be used if appropriate to the
device selected.
o dimnames(x) <- value extends 'value' if it a list and too
short, and 'x' is an array. This allows constructions such as
dimnames(x)[[1]] <- 1:3 to work whether or not 'x' already has
dimnames.
o format(), formatC() and prettyNum() gain a new argument
'drop0trailing' which can be used to suppress trailing "0"s.
o format() now works for environments; also print(env) and str(env)
share the same code for environments.
o It is now possible to create and open a text-mode gzfile()
connection by explicitly using e.g. open="rt".
o New help.request() function for compiling an e-mail to R-help
according to "the rules". It is built on the new utility,
create.post() on which also bug.report() is based now; both
thanks to a contribution by Heather Turner.
o help.search() now assumes that non-ASCII items are in latin1
if that makes sense (all known examples on CRAN are).
o HoltWinters() and decompose() use a (statistically) more
efficient computation for seasonal fits (they used to waste
one period).
o intToUtf8() and intToBits() now accept numeric vectors,
truncating them to integers.
o is.unsorted() gains an argument 'strictly'. It now works for
classed objects with a >= or > method (as incorrectly
documented earlier).
o library() no longer warns about the masking objects that are
identical(.,.) to those they mask.
o lockBinding(), unlockBinding(), lockEnvironment() and
makeActiveBinding() now all return invisibly (they always
return NULL).
o mood.test() now behaves better in the presence of ties.
o na.action() now works on fits of classes "lm", "glm", ....
o optim(.., method="SANN", .., trace=TRUE) is now customizable via
the 'REPORT' control argument, thanks to code proposals by
Thomas Petzoldt.
o The 'factory-fresh' defaults for options("device") have been
changed to refer to the devices as functions in the grDevices
namespace and not as names. This makes it more likely that
the incorrect (since R 2.5.0) assumption in packages that
get(getOption("device"))() will work will catch users of those
packages.
o pch=16 now has no border (for consistency with 15, 17, 18) and
hence is now different from pch=19.
o pdf() has new arguments 'useDingbats' (set this to FALSE for use
with broken viewers) and 'colormodel'. It now only references
the ZapfDingbats font if it is used (for small opaque circles).
The default PDF version is now 1.4, since viewers that do not
accept that are now rare.
Different viewers were rendering consecutive text() calls on a
pdf() device in different ways where translucency was
involved. The PDF generated has been changed to force each
call to be rendered separately (which is the way xpdf or
ghostscript was rendering, but Acrobat was forming a
transparency group), which is consistent with other graphics
devices supporting semi-transparency.
o plot.dendrogram() has new arguments (xlim, ylim) which allows
zooming into a hiearchical clustering dendrogram.
o plot.histogram() gains an 'ann' argument. (Wish from Ben Bolker.)
o plot(<lm_obj>) now warns when it omits points with leverage one
from a plot.
o Plotmath now recognizes 'aleph' and 'nabla' (the Adobe Symbol
'gradient' glyph) as symbol names.
o polyroot() no longer has a maximum degree.
o The alpha/alphamax argument of the 'nls' and 'mle' profile()
methods is used to compute confidence limits for univariate
t-statistics rather than a confidence region for all the
parameters (and not just those being profiled).
o quantile.default() allows 'probs' to stray just beyond [0, 1],
to allow for computed values.
o New functions rawConnection() and rawConnectionValue() allow
raw vectors to be treated as connections.
o read.dcf() now consistently gives an error for malformed DCF.
o read.fwf() no longer passes its default for 'as.is' to
read.table(): this allows the latter's default to be used.
o readBin(), writeBin(), readChar() and writeChar() now open a
connection which was not already open in an appropriate binary
mode rather than the default mode.
readLines(), cat() and sink() now open a connection which was
not already open in an appropriate text mode rather than the
default mode.
o readCitationFile() (and hence citation) now reads a package's
CITATION file in the package's declared encoding (if there is one).
o The behaviour of readLines() for incomplete final lines on
binary-mode connections has been changed to be like blocking
rather than non-blocking text-mode connections.
o A new reorder.character() method has been added. This allows
use of 'reorder(x, ...)' as a shorthand for
'reorder(factor(x), ...)' when 'x' is a character vector.
o round() now computes in long doubles where possible so the
results are more likely to be correct to representation error.
o rug() now uses axis()'s new arguments from 2.7.2, hence no
longer draws an axis line.
o save() (optionally, but by default) checks for the existence
of objects before opening the file/connections (wish of
PR#12543).
o segments(), arrows() and rect() allow zero-length
coordinates. (Wish of PR#11192)
o set.seed(kind=NULL) now takes 'kind' from a saved seed if the
workspace has been restored or .Random.seed has been set in
some other way. Previously it took the 'currently used' value,
which was "default" unless random numbers had been used in
the current session. Similarly for the values reported by
RNGkind(). (Related to PR#12567.)
set.seed() gains a 'normal.kind' argument.
o setEPS() and setPS() gain '...' to allow other arguments to be
passed to ps.options(), including overriding 'width' and 'height'.
o setTimeLimit() function to set limits on the CPU
and/or elapsed time for each top-level computation, and
setSessionLimit() to set limits for the rest of the session.
o splinefun() has a new method = "monoH.FC" for monotone Hermite
spline interpolation.
o sprintf() optionally supports the %a/%A notation of C99 (if the
platform does, including under Windows).
o str()'s default method gains a 'formatNum' function argument which
is used for formatting numeric vectors. Note that this is very
slightly not backward compatible, and that its default may change
before release.
o The summary() method for class "ecdf" now uses a print()
method rather than printing directly.
o summary.manova() uses a stabler computation of the test
statistics, and gains a 'tol' argument to allow highly
correlated responses to be explored (with probable loss of
accuracy). Similar changes have been made to anova.mlm() and
anova.mlmlist().
o Sweave() now writes concordance information inside a
\Sconcordance LaTeX macro, which allows it to be inserted into
PDF output.
o system.time() now uses lazy evaluation rather than
eval/substitute, which results in more natural scoping. (PR#11169)
o In table(), 'exclude=NULL' now does something also for factor
arguments. A new 'useNA' argument allows you to control
whether to add NA levels unconditionally or only when present
in data. A new convenience function addNA() gives similar
functionality by adding NA levels to individual factors.
o unlink() tries the literal pattern if it does not match with
wildcards interpreted -- this helps with e.g. unlink("a[b")
which previously needed to be unlink("a\\[b").
o update.packages() gains an argument 'oldPkgs', where
new.packages() and old.packages() get 'instPkgs'. These allow to
consider only subsets of packages instead of all installed ones.
o which(b) is somewhat faster now, notably for named vectors, thanks
to a suggestion by Henrik Bengtsson.
o New generic function xtfrm() as an auxiliary helper for
sort(), order() and rank(). This should return a numeric
vector that sorts in the same way as its input. The default
method supports any class with ==, > and is.na() methods but
specific methods can be much faster.
As a side-effect, rank() will now work better on classed
objects, although possibly rather slowly.
o X11() and capabilities("X11") now catch some X11 I/O errors that
previously terminated R. These were rare and have only be
seen with a misconfigured X11 setup on some versions of X11.
o The handling of nuls in character strings has been changed --
they are no longer allowed, and attempting to create such a
string now gives a truncation warning (unless
options("warnEscapes") is false).
o The user environment and profile files can now be specified via
environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER',
respectively.
o ?pkg::topic and ?pkg:::topic now find help on 'topic' from
package 'pkg' (and not help on :: or :::).
o ??topic now does help.search("topic"); variations such as
??pkg::topic or field??topic are also supported.
o There is support for using ICU (International Components for
Unicode) for collation, enabled by configure option --with-ICU
on a Unix-alike and by a setting in MkRules on Windows.
Function icuSetCollate() allows the collation rules (including
the locale) to be tuned. [Experimental]
o If S4 method dispatch is on and S4 objects are found as
attributes, show() rather than print() is used to print the
S4 attributes.
o Starting package tcltk without access to Tk (e.g. no available
display) is now a warning rather than an error, as Tcl
will still be usable. (On most platforms it was possible to
inhibit Tk by not having DISPLAY set, but not on Windows nor
Mac OS X builds with --with-aqua.)
o Using $ on a non-subsettable object (such as a function) is
now an error (rather than returning NULL).
o Hexadecimal numerical constants (such as 0xab.cdp+12) may now
contain a decimal point.
o PCRE has been updated to version 7.8 (mainly bug fixes).
o plot.ecdf() now defaults to pch=19 so as to better convey the
left-closed line segments.
NEW FEATURES IN PACKAGE 'methods'
o S3 classes that are registered by a call to setOldClass() now
have the S3 class as a special slot, and therefore so do
any S4 classes that contain them. This mechanism is used to
support S4 classes that extend S3 classes, to the extent
possible. See ?Classes, ?setOldClass, and ?S3Class.
The treatment of special pseudo-classes "matrix", "array", and
"ts" as S4 classes has also been modified to be more
consistent and, within limitations imposed by special
treatment of these objects in the base code, to allow other
classes to contain them. See class?ts.
A general feature added to implement "ts" and also
"data.frame" as S4 classes is that an S4 class definition can
be supplied to setOldClass() when the S3 class has known
attributes of known class.
setOldClass() now saves all the S3 inheritance, allowing the
calls to be built up in stages, rather than including all the
S3 classes in each call. Also allows as(x,"S3") to generate
valid S3 inheritance from the stored definition. See ?S3.
o S4 methods may now be defined corresponding to "...", by
creating a generic function that has "..." as its signature.
A method will be selected and called if all the arguments
matching "..." are from this class or a subclass. See ?dotsMethods.
o New functions S3Part() and S3Class() provide access to the
corresponding S3 object and class for S4 classes that extend
either an S3 class or a basic R object type.
o show(<class definition>) now also shows the class name.
INSTALLATION
o If sub-architectures are used, a copy of Rscript is installed
in ${R_HOME}/bin/exec${R_ARCH} (since that in ${R_HOME}/bin
and /usr/bin might be overwritten in a subsequent installation).
PACKAGE INSTALLATION
o LazyLoad: yes is now the default, so packages wanting to avoid
lazy loading must set 'LazyLoad: no' (or an equivalent value) in
the DESCRIPTION file.
o R CMD INSTALL will now fail if it finds a non-executable
'configure' script in the package -- this usually indicates a
file system with insufficient permissions. If a
non-executable 'cleanup' script is found and either
--clean or --preclean is used, a warning is given.
DEPRECATED & DEFUNCT
o Use in packages of the graphics headers Rdevices.h and
Rgraphics.h is defunct: they are no longer installed.
o options("par.ask.default") is defunct in favour of
"device.ask.default".
o The 'device-independent' family "symbol" is defunct: use
font=5 (base) or fontface=5 (grid) instead.
o gammaCody() is defunct.
o par("gamma") is defunct.
o 'methods' package functions getAccess(), getAllMethods(),
getClassName(), getClassPackage(), getExtends(),
getProperties(), getPrototype(), getSubclasses, getVirtual(),
mlistMetaName(), removeMethodsObject() and seemsS4Object() are
defunct.
o Use of a non-integer .Random.seed is now an error. (R itself
has never generated such values, but user code has, and
R >= 2.6.0 has given a warning.)
o methods::allGenerics() is deprecated.
o In package installation, SaveImage: yes is now ignored, and
any use of the field will give a warning.
o unserialize() no longer accepts character strings as input.
o The C macro 'allocString' has been removed -- use 'mkChar' and
variants.
o Use of allocVector(CHARSXP ...) is deprecated and gives a warning.
UTILITIES
o The default for 'stylepath' in Sweave's (default) RweaveLatex
driver is now FALSE rather than TRUE if
SWEAVE_STYLEPATH_DEFAULT is unset : see ?RweaveLatex.
To support this, tools::texi2dvi adds the R 'texmf' directory
to the input search path.
o R CMD Rd2dvi now previews PDF output (as was documented) if
R_PDFVIEWER is set (as it will normally be on a Unix-alike but
not on Windows, where the file association is used by default).
o R CMD check checks for binary executable files (which should not
appear in a source package), using a suitable 'file' if
available, else by name.
o R CMD check now also uses codetools' checks on the body of S4
methods.
C-LEVEL FACILITIES
o R_ReadConsole will now be called with a buffer size of 4096
bytes (rather than 1024): maintainers of alternative
front-ends should check that they do not have a smaller limit.
o Graphics structure NewDevDesc has been renamed to DevDesc.
For now there is a compatibility define in GraphicsDevice.h,
but it will be removed in R 2.9.0.
o PROTECT and UNPROTECT macros now work even with R_NO_REMAP.
BUG FIXES
o @ now gives an error (and not just a warning) if it is being
applied to a non-S4 object.
o R CMD appends (not prepends) R's texmf path to TEXINPUTS.
o Objects generated by new() from S4 classes should now all
satisfy isS4(object). Previously, prototypes not of object
type S4 would not be S4 objects. new() applied to basic,
non-S4 classes still will (and should) return non-S4 objects.
o Functions writing to connections such as writeLines(),
writeBin(), writeChar(), save(), dput() and dump() now check
more carefully that the connections are opened for writing,
including connections that they open themselves.
Similarly functions which read such as readLines(), scan(),
dcf() and parse() check connections for being open for reading.
o Equality comparison of factors with <NA> levels now works
correctly again.
o Repainting of open X11 View() windows is now done whilst an
X11 dataentry window is in use.
o Indexing of data frames with NA column names and a numeric or
logical column index works again even if columns with NA names
are selected.
o on.exit() has been fixed to use lexical scope in determining
where to evaluate the exit action when the on.exit expression
appears in a function argument.
o rank() now consistently returns a double result for
ties.method = "average" and an integer result otherwise.
Previously the storage mode depended on 'na.last' and if any
NAs were present.
o The "lm" methods of add1(), and drop1() now also work on a model
fit with na.action = na.exclude.
o median(c(x = NA_real_)) no longer has spurious names().
o isoreg(x, y) now returns the correct result also when x has ties,
in all cases.
o What na.action() does is now correctly documented.
o source() with echo=TRUE now behaves like ordinary automatic
printing, by using methods::show() for S4 objects.
o Several bugs fixed in `?` with topics: it previously died trying
to construct some error messages; for S4 methods, class "ANY"
should be used for omitted arguments and default methods.
o trace() should create missing traceable classes in the global
environment, not in baseenv() where other classes will not be
found.
o Class inheritance using explicit coerce= methods via setIs()
failed to coerce the argument in method dispatch. With this
fixed, a mechanism was needed to prohibit such inheritance
when it would break the generic function (e.g.,
initialize). See ?setIs and ?setGeneric.
o RSiteSearch() encodes its query (it seems this is occasionally
needed on some platforms, but encoding other fields is harmful).
o 'incomparables' in match() was looking up indices in the wrong
table.
o write.dcf() did not escape "." according to Debian policy
(PR#12816).
o col2rgb() sometimes opened a graphics device unnecessarily, and
col2rgb(NA) did not return a transparent color, as documented.
o pdf(family="Japan") [and other CIDfonts] no longer seg.faults
when writing "western" text strings.
o as.list() applied to an environment now forces promises and
returns values.
o Promises capturing calls to sys.parent() and friends did not
work properly when evaluated via method dispatch for internal
S3 generics.
o The default pkgType option for non-CRAN builds of R on Mac OS X
is now correctly "source" as documented.
o The default R_LIBS_USER path in AQUA builds now matches the
Mac-specifc path used by the Mac GUI: ~/Library/R/x.y/library
o splinefun() with natural splines incorrectly evaluated derivatives
to the left of the first knot. (PR#13132, fix thanks to
Berwin Turlach)
o anova(glm(..., y=FALSE)) now works. (PR#13098)
o cut.Date(x, "weeks") could fail if x has only one unique value
which fell on a week boundary. (PR#13159)
--
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