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.
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, 2018
BibTeX citation
@article{RJ-2018-2-ch, author = {Team, R Core}, title = {Changes in R}, journal = {The R Journal}, year = {2018}, note = {https://rjournal.github.io/}, volume = {10}, issue = {2}, issn = {2073-4859}, pages = {588-590} }