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. This article includes tables which may not be properly formatted. This article includes figures which have not been given correct alternative text.

CHANGES IN R 3.6.1

INSTALLATION on a UNIX-ALIKE

  • The default detection of the shell variable libNN is overridden for derivatives of Debian Linux, some of which have started to have a ‘/usr/lib64’ directory. (E.g. Ubuntu 19.04.) As before, it can be specified in ‘config.site’.

UTILITIES

  • R CMD knows the values of AR and RANLIB, often set for LTO builds.

BUG FIXES

  • On Windows, GUI package installation via menuInstallPkgs() works again, thanks to Len Weil’s and Duncan Murdoch’s PR#17556.
  • quasi(*, variance = list(..)) now works more efficiently, and should work in all cases fixing PR#17560. Further, quasi(var = mu(1-mu)) and quasi(var = "mu 3̂") now work, and quasi(variance = "log(mu)") now gives a correct error message.
  • Creation of lazy loading database during package installation is again robust to Rprofile changing the current working directory (PR#17559).
  • boxplot(y   f, horizontal=TRUE) now produces correct x- and y-labels.
  • rbind.data.frame() allows to keep <NA> levels from factor columns (PR#17562) via new option factor.exclude. Additionally, it works in one more case with matrix-columns which had been reported on 2017-01-16 by Krzysztof Banas.
  • Correct messaging in C++ pragma checks in tools code for R CMD check, fixing PR#17566 thanks to Xavier Robin.
  • print()ing and auto-printing no longer differs for functions with a user defined print.function, thanks to Bill Dunlap’s report.
  • On Windows, writeClipboard(.., format = <n>) now does correctly pass format to the underlying C code, thanks to a bug report (with patch) by Jenny Bryan.
  • as.data.frame() treats 1D arrays the same as vectors, PR#17570.
  • Improvements in smoothEnds(x, *) working with NAs (towards runmed() working in that case, in the next version of R).
  • vcov(glm(<quasi>), dispersion = *) works correctly again, fixing PR#17571 thanks to Pavel Krivitsky.
  • R CMD INSTALL of binary packages on Windows now works also with per-directory locking.
  • R CMD INSTALL and install.packages() on Windows are now more robust against a locked file in an earlier installation of the package to be installed. The default value of option install.lock on Windows has been changed to TRUE.
  • On Unix alikes (when readline is active), only expand tilde ( ) file names starting with a tilde, instead of almost all tildes.

OTHER RECENT SIGNIFICANT CHANGES IN R

There were two important, user-visible changes in version 3.6.0:

  • Serialization format version 3 becomes the default for serialization and saving of the workspace (save(), serialize(), saveRDS(), compiler::cmpfile()). Serialized data in format 3 cannot be read by versions of R prior to version 3.5.0. Serialization format version 2 is still supported and can be selected by version = 2 in the save/serialization functions. The default can be changed back for the whole R session by setting environment variables R_DEFAULT_SAVE_VERSION and R_DEFAULT_SERIALIZE_VERSION to 2. For maximal back-compatibility, files vignette.rds and partial.rdb generated by R CMD build are in serialization format version 2, and resave by default produces files in serialization format version 2 (unless the original is already in format version 3).
  • The default method for generating from a discrete uniform distribution (used in sample(), for instance) has been changed. This addresses the fact, pointed out by Ottoboni and Stark, that the previous method made sample() noticeably non-uniform on large populations. See PR#17494 for a discussion. The previous method can be requested using RNGkind() or RNGversion() if necessary for reproduction of old results. Thanks to Duncan Murdoch for contributing the patch and Gabe Becker for further assistance. The output of RNGkind() has been changed to also return the kind used by sample().