R 3.1.3 is released (+ easy upgrading for Windows users with the installr package)

R 3.1.3 (codename “Smooth Sidewalk”) was released today. You can get the latest binaries version from here. (or the .tar.gz source code from here). The full list of new features and bug fixes is provided below.

Upgrading to R 3.1.3 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:

# installing/loading the latest installr package:
install.packages("installr"); library(installr) #load / install+load installr
updateR() # updating R.

Running “updateR()” will detect if there is a new R version available, and if so it will download+install it (etc.).

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 leave a comment below.


As always, David smith mentioned in his post some of the main changes, writing:

As has become usual in March, this release is primarily for minor bugs and improvements in R, as the development switches focus to the next major release (R 3.2.0 is expected on April 16). Improvements include: ability to download files greater than 2GB on 32-bit builds; better handling of complex (imaginary) numbers for several functions; improved command completion in the Windows GUI; and improved performance when using S4 classes. (See the complete list here.)

And here is also the full list:


  • The internal method of download.file() can now handle files larger than 2GB on 32-bit builds which support such files (tested on 32-bit R running on 64-bit Windows).
  • kruskal.test() warns on more types of suspicious input.
  • The as.dendrogram() method for "hclust" objects gains a check argument protecting against memory explosion for invalid inputs.
  • capabilities() has a new item long.double which indicates if the build uses a long double type which is longer than double.
  • nlm() no longer modifies the callback argument in place (a new vector is allocated for each invocation, which mimics the implicit duplication that occurred in R < 3.1.0); note that this is a change from the previously documented behavior. (PR#15958)
  • icuSetCollate() now accepts locale = "ASCII" which uses the basic C function strcmp and so collates strings byte-by-byte in numerical order.
  • sessionInfo() tries to report the OS version in use (not just that compiled under, and including details of Linux distributions).
  • model.frame() (used by lm() and many other modelling functions) now warns when it drops contrasts from factors. (Wish of PR#16119)
  • install.packages() and friends now accept the value type = "binary" as a synonym for the native binary type on the platform (if it has one).
  • Single source or binary files can be supplied for install.packages(type = "both") and the appropriate type and repos = NULL will be inferred.
  • New function pcre_config() to report on some of the configuration options of the version of PCRE in use. In particular, this reports if regular expressions using \p{xx} are supported.
  • (Windows.) download.file(cacheOK = FALSE) is now supported when ‘internet2.dll’ is used.
  • browseURL() has been updated to work with Firefox 36.0 which has dropped support for the -remote interface.


  • The included version of PCRE has been updated to 8.36.
  • configure accepts MAKEINFO=texi2any as another way to ensure texinfo 5.x is used when both 5.x and 4.x are installed.


  • R CMD check now checks the packages used in \donttest sections of the examples are specified in the ‘DESCRIPTION’ file. (These are needed to run the examples interactively.)
  • R CMD check checks for the undeclared use of GNU extensions in Makefiles, and for Makefiles with a missing final linefeed.R CMD build will correct line endings in all Makefiles, not just those in the ‘src’ directory.
  • R CMD check notes uses of library() and require() in package code: see the section ‘Suggested packages’ of ‘Writing R Extensions’ for good practice.


  • The configure option –with-valgrind-instrumentation=3 is deprecated and will be removed in R 3.2.0.


  • (Windows.) Rscript.exe was missing a manifest specifying the modern style for common controls (e.g., the download progress bar).
  • If a package had extra documentation files but no vignette, the HTML help system produced an empty index page.
  • The parser now gives an error if a null character is included in a string using Unicode escapes. (PR#16046)
  • qr.Q() failed on complex arguments due to pre-3.0(!) typo. (PR#16054)
  • abs() failed with named arguments when the argument was complex. (PR#16047)
  • "noquote" objects may now be used as columns in dataframes. (PR#15997)
  • Some values with extremely long names were printed incorrectly. (PR#15999)
  • Extremely large exponents on zero expressed in scientific notation (e.g. 0.0e50000) could give NaN. (PR#15976)
  • download.file() reported downloaded sizes as 0KB if less than 1MB, only for R 3.1.2 and only on big-endian platforms.
  • prompt() did not escape percent signs in the automatically generated usage section of help files.
  • drop.terms() dropped some of the attributes of the object it was working with. (PR#16029)
  • (Windows.) The command completion in Rgui.exe messed up the console. (PR#15791)
  • (Windows.) The choose.files() command returned a blank string when the user asked for a single file but cancelled the request. (PR#16074)
  • Math2 S4 group generics failed to correctly dispatch "structure"– and "nonStructure"-derived classes.
  • loadNamespace() imposed undocumented restrictions on the versionCheck parameter. (Reported by Geoff Lee.)
  • Rare over-runs detected by AddressSanitizer in substr() and its replacement version have been avoided.Inter alia that fix gives the documented behaviour for substr(x, 1, 2) <- "" (subsequently reported as PR#16214).
  • Loading packages incorrectly defining an S4 generic followed by a function of the same name caused an erroneous cyclic namespace dependency error.
  • Declared vignette encodings are now always passed to the vignette engine.
  • Port Tomas Kalibera’s fix from R-devel that restores the loadMethod() fast path, effectively doubling the speed of S4 dispatch.
  • power.t.test() and power.prop.test() now make use of the extendInt option of uniroot() and hence work in more extreme cases. (PR#15792)
  • If a package was updated and attached when its namespace was already loaded, it could end up with parts from one version and parts from the other. (PR#16120)
  • tools:::.Rdconv() didn’t accept --encoding= due to a typo. (PR#16121)
  • Unix-alike builds without a suitable makeinfo were documented to link the missing HTML manuals to CRAN, but did not.
  • save(*, ascii=TRUE) and load() now correctly deal with NaN‘s. (PR#16137)
  • split.Date() retains fractional representations while avoiding incomplete class propagation.
  • R_ext/Lapack.h’ had not been updated for changes made by LAPACK to the argument lists of its (largely internal) functions dlaed2 and dlaed3. (PR#16157)
  • RShowDoc("NEWS", "txt") had not been updated for the layout changes of R 3.1.0.
  • The xtfrm() method for class "Surv" has been corrected and its description expanded.
  • mode(x) <- y would incorrectly evaluate x before changing its mode. (PR#16215)
  • besselJ(1, 2^64) and besselY(..) now signal a warning, returning NaN instead of typically segfaulting. (Issue 3 of PR#15554)
  • HTML conversion of \href markup in ‘.Rd’ files did not remove the backslash from \% and so gave an invalid URL. In a related change, the \ escape is now required in such URLs.



5 thoughts on “R 3.1.3 is released (+ easy upgrading for Windows users with the installr package)”

  1. I am trying Shiny package and for that I am not able to install runapp() package within the R version 3.0.2, so I updated to 3.1.2 and then 3.1.3 but still the runapp() package is not working in new versions.
    Please give some suggestions or it is still an issue in R versions.
    Anil Maharjan

  2. Hi,
    Just to let you know, I lost all my packages during the process. I asked to delete those from R 3.1.1 and copy them to R 3.1.3, the package did delete in the old version but nothing was copied.
    That’s not a big deal to me, but I thought you’d like to know.

Leave a Reply