The ‘Changes in R’ article from the 2016-2 issue.
CHANGES IN R 3.3.2 patched
NEW FEATURES
download.file()
and url()
now report if
they are unable to follow the redirection of a http://
URL to a
https://
URL (rather than failing silently).INSTALLATION on a UNIX-ALIKE
configure
check for the zlib
version is now robust to
versions longer than 5 characters, including 1.2.10
.UTILITIES
_R_CHECK_TESTS_NLINES_
controls how
R CMD check
reports failing tests (see §8 of the ‘R Internals’
manual).BUG FIXES
rep(x, times)
and rep.int(x, times)
now both work also when
times
is larger than the maximal integer, including when it is of
length greater than one.
(PR#16932)
vapply(x, *)
now works with long vectors x
.
(PR#17174)
isS3method("is.na.data.frame")
and similar are correct now.
(PR#17171)
grepRaw(<long>, <short>, fixed = TRUE)
now works, thanks to a
patch by Mikko Korpela.
(PR#17132)
Package installation into a library where the package exists via
symbolic link now should work wherever ()
works, resolving
PR#16725.
"Cincinnati"
was missing an "n"
in the precip
dataset.
Fix buffer overflow vulnerability in pdf()
when loading an
encoding file. Reported by Talos (TALOS-2016-0227).
getDLLRegisteredRoutines()
now produces its warning correctly when
multiple DLLs match, thanks to Matt Dowle’s
PR#17184.
Sys.timezone()
now returns non-NA also on platforms such as
Ubuntu 14.04.5 LTS
, thanks to Mikko Korpela’s
PR#17186.
format(x)
for an illegal "POSIXlt"
object x
no longer
segfaults.
methods(f)
now also works for f
"("
or "{"
.
(Windows only) dir.create()
did not check the length of the path
to create, and so could overflow a buffer and crash R.
(PR#17206)
On some systems, very small hexadecimal numbers in hex notation would underflow to zero. (PR#17199)
pmin()
and pmax()
now work again for ordered
factors and
0-length S3 classed objects, thanks to Suharto Anggono’s
PR#17195
and
PR#17200.
bug.report()
did not do any validity checking on a package’s
BugReports
field. It now ignores an empty field, removes leading
whitespace and only attempts to open http://
and https://
URLs,
falling back to emailing the maintainer.
Bandwidth selectors bw.ucv()
and bw.SJ()
gave incorrect answers
or incorrectly reported an error (because of integer overflow) for
inputs longer than 46341. Similarly for bw.bcv()
at length 5793.
Another possible integer overflow is checked and may result in an error report (rather than an incorrect result) for much longer inputs (millions for a smooth distribution).
findMethod
failed if the active signature had expanded beyond what
a particular package used. (Example with packages
XR and
XRJulia on CRAN).
qbeta()
underflowed too early in some very asymmetric cases.
(PR#17178)
CHANGES IN R 3.3.2
NEW FEATURES
extSoftVersion()
now reports the version (if any) of the
readline
library in use.
The version of LAPACK included in the sources has been updated to
3.6.1, a bug-fix release including a speedup for the non-symmetric
case of eigen()
.
Use options(deparse.max.lines=)
to limit the number of lines
recorded in .Traceback
and other deparsing activities.
format(<AsIs>)
looks more regular, also for non-character atomic
matrices.
abbreviate()
gains an option named = TRUE
.
The online documentation for package methods is extensively rewritten. The goals are to simplify documentation for basic use, to note old features not recommended and to correct out-of-date information.
Calls to setMethod()
no longer print a message when creating a
generic function in those cases where that is natural: S3 generics
and primitives.
INSTALLATION and INCLUDED SOFTWARE
Versions of the readline
library >= 6.3 had been changed so that
terminal window resizes were not signalled to readline
: code has
been added using a explicit signal handler to work around that (when
R is compiled against readline >= 6.3).
(PR#16604)
configure
works better with Oracle Developer Studio 12.5.
UTILITIES
R CMD check
reports more dubious flags in files
src/Makevars[.in]
, including -w
and -g
.
R CMD check
has been set up to filter important warnings from
recent versions of gfortran
with -Wall -pedantic
: this now
reports non-portable GNU extensions such as out-of-order
declarations.
R CMD config
works better with paths containing spaces, even those
of home directories (as reported by Ken Beath).
DEPRECATED AND DEFUNCT
NO_C_HEADERS
is deprecated (no C headers
are included by R headers from C++ as from R 3.3.0, so it should no
longer be needed).BUG FIXES
The check for non-portable flags in R CMD check
could be stymied
by src/Makevars
files which contained targets.
(Windows only) When using certain desktop themes in Windows 7 or
higher, could cause Rterm
to stop accepting input.
(PR#14406;
patch submitted by Jan Gleixner.)
pretty(d, ..)
behaves better for date-time d
(PR#16923).
When an S4 class name matches multiple classes in the S4 cache,
perform a dynamic search in order to obey namespace imports. This
should eliminate annoying messages about multiple hits in the class
cache. Also, pass along the package from the ClassExtends
object
when looking up superclasses in the cache.
sample(NA_real_)
now works.
Packages using non-ASCII encodings in their code did not install data properly on systems using different encodings.
merge(df1, df2)
now also works for data frames with column names
"na.last"
, "decreasing"
, or "method"
.
(PR#17119)
contour()
caused a segfault if the labels
argument had length
zero. (Reported by Bill Dunlap.)
unique(warnings())
works more correctly, thanks to a new
duplicated.warnings()
method.
findInterval(x, vec = numeric(), all.inside = TRUE)
now returns
0
s as documented. (Reported by Bill Dunlap.)
(Windows only) R CMD SHLIB
failed when a symbol in the resulting
library had the same name as a keyword in the .def
file.
(PR#17130)
pmax()
and pmin()
now work with (more ?) classed objects, such
as "Matrix"
from the
Matrix package, as
documented for a long time.
axis(side, x = D)
and hence Axis()
and plot()
now work
correctly for "Date"
and time objects D
, even when “time goes
backward”, e.g., with decreasing xlim
. (Reported by William May.)
str(I(matrix(..)))
now looks as always intended.
plot.ts()
, the plot()
method for time series, now respects
cex
, lwd
and lty
. (Reported by Greg Werbin.)
parallel::mccollect()
now returns a named list (as documented)
when called with wait = FALSE
. (Reported by Michel Lang.)
If a package added a class to a class union in another package, loading the first package gave erroneous warnings about “undefined subclass”.
c()
’s argument use.names
is documented now, as belonging to the
(C internal) default method. In “parallel”, argument recursive
is
also moved from the generic to the default method, such that the
formal argument list of base generic c()
is just (...)
.
rbeta(4, NA)
and similarly rgamma()
and rnbinom()
now return
NaN
’s with a warning, as other r<dist>(), and as documented.
(PR#17155)
Using options(checkPackageLicense = TRUE)
no longer requires
acceptance of the licence for non-default standard packages such as
compiler. (Reported by Mikko Korpela.)
split(<very_long>, *)
now works even when the split off parts are
long.
(PR#17139)
min()
and max()
now also work correctly when the argument list
starts with character(0)
.
(PR#17160)
Subsetting very large matrices (prod(dim(.)) >= 2^31
) now works
thanks to Michael Schubmehl’s
PR#17158.
bartlett.test()
used residual sums of squares instead of
variances, when the argument was a list of lm
objects. (Reported
by Jens Ledet Jensen).
plot(<lm>, which = *)
now correctly labels the contour lines for
the standardized residuals for which = 6
. It also takes the
correct \(p\) in case of singularities (also for which = 5
).
(PR#17161)
xtabs(~ exclude)
no longer fails from wrong scope, thanks to
Suharto Anggono’s
PR#17147.
Reference class calls to methods()
did not re-analyse previously
defined methods, meaning that calls to methods defined later would
fail. (Reported by Charles Tilford).
findInterval(x, vec, left.open = TRUE)
misbehaved in some cases.
(Reported by Dmitriy Chernykh.)
This article is converted from a Legacy LaTeX article using the texor package. The pdf version is the official version. To report a problem with the html, refer to CONTRIBUTE on the R Journal homepage.
Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".
For attribution, please cite this work as
Team, "Changes in R", The R Journal, 2016
BibTeX citation
@article{RJ-2016-2-ch, author = {Team, The R Core}, title = {Changes in R}, journal = {The R Journal}, year = {2016}, note = {https://rjournal.github.io/}, volume = {8}, issue = {2}, issn = {2073-4859}, pages = {511-514} }