R 3.4.2 is released (with several bug fixes and a few performance improvements)

September 29, 2017

(This article was first published on R – R-statistics blog, and kindly contributed to R-bloggers)

R 3.4.2 (codename “Short Summer”) was released yesterday. You can get the latest binaries version from here. (or the .tar.gz source code from here).

As mentioned by David Smith, R 3.4.2 includes a performance improvement for names:

c() and unlist() are now more efficient in constructing the names(.) of their return value, thanks to a proposal by Suharto Anggono. (PR#17284)

The full list of bug fixes and new features is provided below.

Thank you Duncan Murdoch !

On a related note, following the announcement on R 3.4.2, Duncan Murdoch wrote yesterday:

I’ve just finished the Windows build of R 3.4.2.  It will make it to CRAN and its mirrors over the next few hours.

This is the last binary release that I will be producing.  I’ve been building them for about 15 years, and it’s time to retire.  Builds using different tools and scripts are available from https://mran.microsoft.com/download/.  I’ll be putting my own scripts on CRAN soon in case anyone wants to duplicate them.

Nightly builds of R-patched and R-devel will continue to run on autopilot for the time being, without maintenance.

I will also be retiring from maintenance of the Rtools collection.

I am grateful to Duncan for contributing so much of his time and expertise throughout the years. And I am confident that other R users, using the binaries for the Windows OS, share this sentiment.

Upgrading to R 3.4.2 on Windows

If you are using Windows you can easily upgrade to the latest version of R using the installr package. Simply run the following code in Rgui:

install.packages("installr") # install 
setInternet2(TRUE) # only for R versions older than 3.3.0
installr::updateR() # updating R.
# If you wish it to go faster, run: installr::updateR(T)

Running “updateR()” will detect if there is a new R version available, and if so it will download+install it (etc.). There is also a step by step tutorial (with screenshots) on how to upgrade R on Windows, using the installr package. If you only see the option to upgrade to an older version of R, then change your mirror or try again in a few hours (it usually take around 24 hours for all CRAN mirrors to get the latest version of R).

I try to keep the installr package updated and useful, so if you have any suggestions or remarks on the package – you are invited to open an issue in the github page.



  • Setting the LC_ALL category in Sys.setlocale() invalidates any cached locale-specific day/month names and the AM/PM indicator for strptime() (as setting LC_TIME has since R 3.1.0).
  • The version of LAPACK included in the sources has been updated to 3.7.1, a bug-fix release.
  • The default for tools::write_PACKAGES(rds_compress=) has been changed to "xz" to match the compression used by CRAN.
  • c() and unlist() are now more efficient in constructing the names(.) of their return value, thanks to a proposal by Suharto Anggono. (PR#17284)


  • R CMD check checks for and R CMD build corrects CRLF line endings in shell scripts configure and cleanup (even on Windows).


  • The order of selection of OpenMP flags has been changed: Oracle Developer Studio 12.5 accepts -fopenmp and -xopenmp but only the latter enables OpenMP so it is now tried first.


  • within(List, rm(x1, x2)) works correctly again, including when List[["x2"]] is NULL.
  • regexec(pattern, text, *) now applies as.character(.) to its first two arguments, as documented.
  • write.table() and related functions, writeLines(), and perhaps other functions writing text to connections did not signal errors when the writes failed, e.g. due to a disk being full. Errors will now be signalled if detected during the write, warnings if detected when the connection is closed. (PR#17243)
  • rt() assumed the ncp parameter was a scalar. (PR#17306)
  • menu(choices) with more than 10 choices which easily fit into one getOption("width")-line no longer erroneously repeats choices. (PR#17312)
  • length()<- on a pairlist succeeds. (https://stat.ethz.ch/pipermail/r-devel/2017-July/074680.html)
  • Language objects such as quote(("\n")) or R functions are correctly printed again, where R 3.4.1 accidentally duplicated the backslashes.
  • Construction of names() for very large objects in c() and unlist() now works, thanks to Suharto Anggono’s patch proposals in PR#17292.
  • Resource leaks (and similar) reported by Steve Grubb fixed. (PR#17314PR#17316PR#17317PR#17318PR#17319PR#17320)
  • model.matrix(~1, mf) now gets the row names from mf also when they differ from 1:nrow(mf), fixing PR#14992 thanks to the suggestion by Sebastian Meyer.
  • sigma(fm) now takes the correct denominator degrees of freedom for a fitted model with NA coefficients. (PR#17313)
  • hist(x, "FD") no longer “dies” with a somewhat cryptic error message when x has extreme outliers or IQR() zero: nclass.FD(x) tries harder to find a robust bin width h in the latter case, and hist.default(*, breaks) now checks and corrects a too large breaks number. (PR#17274)
  • callNextMethod() works for ... methods.
  • qr.coef(qd, y) now has correct names also when qd is a complex QR or stems from qr(*, LAPACK=TRUE).
  • Setting options(device = *) to an invalid function no longer segfaults when plotting is initiated. (PR#15883)
  • encodeString() no longer segfaults. (PR#15885)
  • It is again possible to use configure --enable-maintainer-mode without having installed notangle (it was required in R 3.4.[01]).
  • S4 method dispatch on ... calls the method by name instead of .Method (for consistency with default dispatch), and only attempts to pass non-missing arguments from the generic.
  • readRDS(textConnection(.)) works again. (PR#17325)
  • (1:n)[-n] no longer segfaults for n <- 2.2e9 (on a platform with enough RAM).
  • x <- 1:2; tapply(x, list(x, x), function(x) "")[1,2] now correctly returns NA. (PR#17333)
  • Running of finalizers after explicit GC request moved from the R interface do_gc to the C interface R_gc. This helps with reclaiming inaccessible connections.
  • help.search(topic) and ??topic matching topics in vignettes with multiple file name extensions (e.g., ‘*.md.rsp’ but not ‘*.Rmd’) failed with an error when using options(help_type = "html").
  • The X11 device no longer uses the Xlib backing store (PR#16497).
  • array(character(), 1) now gives (a 1D array with) NA as has been documented for a long time as in the other cases of zero-length array initialization and also compatibly withmatrix(character(), *). As mentioned there, this also fixes PR#17333.
  • splineDesign(.., derivs = 4) no longer segfaults.
  • fisher.test(*, hybrid=TRUE) now (again) will use the hybrid method when Cochran’s conditions are met, fixing PR#16654.



To leave a comment for the author, please follow the link and comment on their blog: R – R-statistics blog.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.

Search R-bloggers


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)