Abstract
The ‘Changes in R’ article from the 2018-2 issue.CHANGES IN R 3.5.2
PACKAGE INSTALLATION
CXX_VISIBILITY analogous to
C_VISIBILITY (which several packages have been misusing for
C++ code) for the default C++ compiler (but not necessarily one used for
non-default C++ dialects like C++14).TESTING
tests/p-r-random-tests.R no longer fail occasionally as
they now randomly sample from “certified” random seeds.BUG FIXES
"glm" method of drop1() miscalculated
the score test (test="Rao") when the model contained an
offset.lm(y ~ 0) now have
a correctly dimensioned empty coefficient matrix; reported by Brett
Presnell.vcov(<empty mlm>) and hence
confint() now work (via a consistency change in
summary.lm()).confint(<multiple lm()>) now works correctly;
reported on R-devel by Steven Pav.quade.test() now also works correctly when its
arguments are not yet sorted along groups, fixing PR#15842.pthread library where required (rather than relying on
OpenMP to provide it: configuring with –disable-openmp was
failing on some Linux systems).data.frame method for print(x) is fast
now also for large data frames x and got an optional
argument max, thanks to suggestions by Juan Telleria.hist() no longer integer overflows in very rare cases,
fixing PR#17450.untar() ignored a character compressed
argument: however many external tar programs ignore the
flags which should have been set and automagically choose the
compression type, and if appropriate gzip or
bzip2 compression would have been chosen from the magic
header of the tarball.zapsmall(x) now works for more “number-like”
objects.R CMD INSTALL
now gets a warnOption = 1 argument and only sets
options(warn = warnOption) when that increases the warning
level (PR#17453).R CMD check gets a warnOption = 1 argument and
uses the larger of that and getOption("warn"), also
allowing to be run with increased warning level.match() with length one x and
POSIXlt table gave a segfault (PR#17459).makeCluster()).nextn(n) now also works for larger n and
no longer loops infinitely for e.g, n <- 214e7.cooks.distance() and rstandard() now work
correctly for multiple linear models ("mlm").polym() and corresponding lm() prediction
now also work for a boundary "vector" case fixing PR#17474,
reported by Alexandre Courtiol.terms() could
segfault (PR#17480).cut(rep(0, 7)) now works, thanks to Joey Reid and
Benjamin Tyner (PR#16802).download.file(*, method = "curl", cacheOK = FALSE)
should work now on Windows, thanks to Kevin Ushey’s patch in PR#17323.duplicated(<dataframe with ’f’>) now works, too,
thanks to Andreas Kersting’s PR#17485;
ditto for anyDuplicated().legend(*, cex = 1:2) now works less badly.print() method for POSIXct and
POSIXlt now correctly obeys
getOption("max.print"), fixing a long-standing typo, and it
also gets a corresponding optional max argument.<data frame>[TRUE, <new>] <- list(c1, c2)
now works correctly, thanks to Suharto Anggono’s PR#15362
and Emil Bode’s patch in PR#17504.seq.int(*, by=by, length=n) no longer wrongly “drops
fractional parts” when by is integer, thanks to Suharto
Anggono’s report PR#17506.file() connections to
non-regular files (like sockets), as well as fifo() and
pipe() connections. Fixes PR#17470,
reported by Chris Culnane.CHANGES IN R 3.5.1
BUG FIXES
file("stdin") is no longer considered seekable.dput() and dump() are no longer truncating
when options(deparse.max.lines = *) is set.file argument of Rscript to include
space even when it is first on the command line.callNextMethod() uses the generic from the environment
of the calling method. Reported by Hervé Pagès with well documented
examples.optim(*, lower = c(-Inf, -Inf)) no longer warns (and
switches the method), thanks to a suggestion by John Nash.predict(fm, newdata) is now correct also for models
where the formula has terms such as splines::ns(..) or
stats::poly(..), fixing PR#17414,
based on a patch from Duncan Murdoch.simulate.lm(glm(*, gaussian(link = <non-default>)))
has been corrected, fixing PR#17415
thanks to Alex Courtiol.unlist(x) no longer fails in some cases of nested empty
lists. Reported by Steven Nydick.qr.coef(qr(<all 0, w/ colnames>)) now works.
Reported by Kun Ren.deparse(x), dput(x) and
dump() now respect c()’s argument names
recursive and use.names, e.g., for
x <- setNames(0, "recursive"), thanks to Suharto
Anggono’s PR#17427..Renviron on Windows with Rgui is again by
default searched for in user documents directory when invoked
via the launcher icon. Reported by Jeroen Ooms.printCoefmat() now also works with explicit
right=TRUE.print.noquote() now also works with explicit
quote=FALSE.pairs(.., horInd=*, verInd=*)
now gets the correct order, thanks to reports by Chris Andrews and
Gerrit Eichner. Additionally, when horInd or
verInd contain only a subset of variables, all the axes are
labeled correctly now.agrep("..|..", .., fixed=FALSE) now matches when it
should, thanks to a reminder by Andreas Kolter.str(ch) now works for more invalid multibyte
strings.