Place holder.
************************************************** * *
The way old.packages() and hence update.packages() handle packages with different versions in multiple package repositories has been changed. The first package encountered was selected, now the one with highest version number.
old.packages, and hence update.packages, incorrectly handled duplicate packages when multiple package repositories are specified. The first package encountered was selected, not the one with highest version number. This has been fixed.
Dataset HairEyeColor has been corrected to agree with Friendly (2000): the change involves the breakdown of Brown/Brown by Sex, and only totals over Sex are given in the original source.
************************************************** * *
str() is no longer slow for large POSIXct objects. Its output is also slightly more compact for such; implementation via new optional argument 'give.head'.
str() is no longer slow for large POSIXct objects. Its output is also slightly more compact for such objects; implementation via new optional argument 'give.head'.
de.restore() gave spurious warning for matrices (Ben Bolker)
de.restore() gave a spurious warning for matrices (Ben Bolker)
julian() was documented to work with POSIXt origins, but did not work with POSIXlt ones. (PR#9908)
************************************************** * *
plot(fn, xlim=c(a,b)) would not set "from" and "to" properly when plotting a function.
plot(fn, xlim=c(a,b)) would not set "from" and "to" properly when plotting a function. The argument lists to curve() and plot.function() have been modified slightly as part of the fix.
strsplit(*, fixed=TRUE), potentially iconv() and internal string formatting is now faster for large strings, thanks to report PR#9902 by John Brzustowski.
plot(fn, xlim=c(a,b)) would not set "from" and "to" properly when plotting a function.
old.packages, and hence update.packages, incorrectly handled duplicate packages when multiple package repositories are specified. The first package encountered was selected, not the one with highest version number. This has been fixed.
************************************************** * *
New function within(), which is like with(), except that it tries to store modifications back to the original in the list and data frame cases.
New function within(), which is like with(), except that it returns modified versions back of lists and data frames.
de.restore() gave spurious warning for matrices (Ben Bolker)
************************************************** * *
R CMD check no longer issues a warning about no data sets being present if a lazyload db is found (as determined by the presence of Rdata.rdb, Rdata.rds, and Rdata.rdx in the 'data' subdirectory.
NEW FEATURES; PACKAGE INSTALLATION; BUG FIXES
abbreviate() gains a 'method' argument with a new option "both.sides" which can make shorter abbreviations.
A standard for specifying package license information in the DESCRIPTION License field was introduced, see 'Writing R Extensions'. In addition, files LICENSE or LICENCE in a package top-level source directory are now installed (so putting copies into the 'inst' subdirectory is no longer necessary).
str() is no longer slow for large POSIXct objects. Its output is also slightly more compact for such; implementation via new optional argument 'give.head'.
************************************************** * *
dQuote() and sQuote() are more flexible, with rendering controlled by the new option 'useFancyQuotes'. This includes the ability to have TeX-style rendering and directional quotes (the so-called 'smart quotes') on Windows.
R CMD Rdconv now does a better job of rendering quotes in titles in HTML, and \sQuote and \dQuote into text on Windows.
file.edit() and file.show() now tilde-expand file paths on all interfaces (they used to on some and not others).
unsplit() now works with lists of dataframes.
New function within(), which is like with(), except that it tries to store modifications back to the original in the list and data frame cases.
showMethods() has a "smart" default for 'inherited' such that
showMethods(
sweep() gains an argument 'check.margin = TRUE' which warns about mismatched dimensions.
uniroot(f, *) is slightly faster for non-trivial f() because it computes f(lower) and f(upper) only once, and it has new optional arguments 'f.lower' and 'f.upper' by which the caller can pass these.
The reporting of syntax errors has been made more user- friendly.
Fixed bug in initialisation code in 'grid' package for determining the boundaries of shapes. Problem reported by Hadley Wickham; symptom was error message: "Polygon edge not found".
************************************************** * *
R CMD config now knows about FC and FCFLAGS (used for F9x compilation).
A script/executable 'texi2dvi' is now required on Unix-alikes: it is part of the texinfo distribution.
Files texinfo.tex and txi-en.tex are no longer supplied in doc/manual (as the latest versions have an incompatible licence). You will need to ensure that your texinfo and/or TeX installations supply them.
wcstod is now required for MBCS support.
There are some experimental provisions for building on Cygwin.
The C function 'finite' is no longer used: we expect a C99 compiler which will have 'isfinite'. (If that is missing, we test separately for NaN, Inf and -Inf.)
o A script/executable 'texi2dvi' is now required on Unix-alikes: it is part of the texinfo distribution.
o Files texinfo.tex and txi-en.tex are no longer supplied in doc/manual (as the latest versions have an incompatible licence). You will need to ensure that your texinfo and/or TeX installations supply them.
o wcstod is now required for MBCS support.
o There are some experimental provisions for building on Cygwin.
The C function 'finite' is no longer used: we expect a C99 compiler which will have 'isfinite'. (If that is missing, we test separately for NaN, Inf and -Inf.)
New function Sys.which(), an interface to 'which' on Unix-alikes.
rmultinom() uses a high-precision accumulator where available, and so is more likely to give the same result on different platforms (although it is still possible to get different results, and the result may differ from previous versions of R).
New function Sys.which(), an interface to 'which' on Unix-alikes and an emulation on Windows.
The interface to reshape() has been revised, allowing some simplified forms that did not work before, and somewhat improved error handling. A new argument 'sep' has been introduced to replace simple usages of 'split' (the old features are retained).
The interface to reshape() has been revised, allowing some simplified forms that did not work before, and somewhat improved error handling. A new argument 'sep' has been introduced to replace simple usages of 'split' (the old features are retained).
We had identical(NaN, NA_real_) != identical(NA_real_, NaN), spotted by Petr Savicky.
It is now possible to use setGeneric(useAsDefault = FALSE) to define a new generic with the name of a primitive function (but having no connection with the primitive).
LF was missing after the last prompt when --quiet was used without --slave. Use --slave when no final LF is desired.
************************************************** * *
The data frame method for split<-() was broken.
The data.frame method for split<-() was broken.
The workaround for seeking on > 2Gb files did not work correctly on Unix-alike 32-bit systems. (PR#9883)
The interface to reshape() has been revised, allowing some simplified forms that did not work before, and somewhat improved error handling. A new argument 'sep' has been introduced to replace simple usages of 'split' (the old features are retained).
The data frame method for split<-() was broken.
NEW FEATURES; METHODS PACKAGE; INSTALLATION
chol() is now generic.
qr() is now generic.
as.complex(), as.double(), as.integer(), as.logical() and as.raw() are now primitive and internally generic for efficiency. They no longer dispatch on S3 methods for as.vector() (which was never documented). as.real() and as.numeric() remain as alternative names for as.double().
expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), digamma() and trigamma() are now primitive. (Note that logb() is not.)
See under METHODS PACKAGE below for some consquences for S4 methods.
as.complex(), as.double(), as.integer(), as.logical() and as.raw() are now primitive and internally generic for efficiency. They no longer dispatch on S3 methods for as.vector() (which was never documented). as.real() and as.numeric() remain as alternative names for as.double().
expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), digamma() and trigamma() are now primitive. (Note that logb() is not.)
The Math2 and Summary groups (round, signif, all, any, max, min, summ, prod, range) are now primitive.
See under METHODS PACKAGE below for some consquences for S4 methods.
The S3 and S4 Math groups have been harmonized. Functions log1p(), expm1(), log10() and log2() are members of the S3 group, and sign(), log1p(), expm1(), log2(), cummax(), cummin(), digamma(), trigamma() and trunk() are members of the S4 group. gammaCody() is no longer in the S3 Math group.
The S3 and S4 Math groups have been harmonized. Functions log1p(), expm1(), log10() and log2() are members of the S3 group, and sign(), log1p(), expm1(), log2(), cummax(), cummin(), digamma(), trigamma() and trunk() are members of the S4 group. gammaCody() is no longer in the S3 Math group. They are now all primitive.
Making functions primitive changes the semantics of S4 dispatch: these no longer dispatch on classes based on types but do dispatch whenever the function in the base name space is called.
This applies to as.complex(), as.integer(), as.logical(), as.numeric(), as.raw(), expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), digamma() and trigamma().
as.double() and as.real() are identical to as.numeric(), and now remain so even if S4 methods are set on any of them. Since 'as.numeric' is the traditional name used in S4, currently methods must be exported from a NAMESPACE for 'as.numeric' only.
Making functions primitive changes the semantics of S4 dispatch: these no longer dispatch on classes based on types but do dispatch whenever the function in the base name space is called.
This applies to as.complex(), as.integer(), as.logical(), as.numeric(), as.raw(), expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(), digamma() and trigamma(), as well as the Math2 and Summary groups.
Because all members of the group generics are now primitive, they are all S4 generic and setting an S4 group generic does at last apply to all members and not just those already made S4 generic.
as.double() and as.real() are identical to as.numeric(), and now remain so even if S4 methods are set on any of them. Since 'as.numeric' is the traditional name used in S4, currently methods must be exported from a NAMESPACE for 'as.numeric' only.
The C function 'finite' is no longer used: we expect a C99 compiler which will have 'isfinite'. (If that is missing, we test separately for NaN, Inf and -Inf.)
o A script/executable 'texi2dvi' is now required on Unix-alikes: it is part of the texinfo distribution.
o Files texinfo.tex and txi-en.tex are no longer supplied in doc/manual (as the latest versions have an incompatible licence). You will need to ensure that your texinfo and/or TeX installations supply them.
The C function 'finite' is no longer used: we expect a C99 compiler which will have 'isfinite'. (If that is missing, we test separately for NaN, Inf and -Inf.)
o A script/executable 'texi2dvi' is now required on Unix-alikes: it is part of the texinfo distribution.
o Files texinfo.tex and txi-en.tex are no longer supplied in doc/manual (as the latest versions have an incompatible licence). You will need to ensure that your texinfo and/or TeX installations supply them.
o wcstod is now required for MBCS support.
o There are some experimental provisions for building on Cygwin.
The mathematical annotation facility (plotmath) now recognises a symbol() function which forces the font to be a symbol font. This allows access to all characters in the Adobe Symbol encoding within plotmath expressions.
The default 'max.names' in all.names() and all.vars() is now -1 which means unlimited. This fixes PR#9873.
The test for -D__NO_MATH_INLINES was badly broken and returned true on all non-glibc platforms and false on all glibc ones (whether they were broken or not).
************************************************** * *