This blog is updated daily.
A general description is here.
‘chooseCRANmirror()’ and ‘chooseBioCmirror()’ gain an ‘ind’ argument (like ‘setRepositories()’).
‘mcparallel’ has a new argument ‘mc.interactive’ which can modify the interactive flag in the child process. The new default is ‘FALSE’ which makes child processes non-interactive by default (this prevents lock-ups due to children waiting for interactive input).
‘scan()’ now warns when end-of-file occurs within a quoted string.
‘count.fields()’ is now consistent with ‘scan()’ in its handling of newlines in quoted strings. Instead of triggering an error, this results in the current line receiving ‘NA’ as the field count, with the next line getting the total count of the two lines.
The default method of ‘image()’ will plot axes of the class of ‘xlim’ and ‘ylim’ (and hence of ‘x’ and ‘y’ if there is a suitable ‘range()’ method). Based on a suggestion of Michael Sumner.
‘load()’ now has a ‘verbose’ argument for debugging support, to print the names of objects just before loading them.
When loading a serialized object encounters a reference to a namespace which cannot be loaded, this is replaced by a reference to the global environment, with a warning.
‘pairs()’ gains a ‘line.main’ option for title placement.
The remaining instances in which serialization to a raw vector was limited to 2GB have been unlimited on a 64-bit platform, and in most cases serialization to a vector of more than 1GB will be substantially faster.
‘R CMD config’ now make use of personal ‘Makevars’ files under ‘~/.R’ and a site file ‘Makevars.site’, in the same way as ‘R CMD SHLIB’ and ‘R CMD INSTALL’. This makes the utility more useful in package ‘configure’ scripts.
On Windows finding the personal files may require the environment variable ‘HOME’ set.
The old behaviour can be obtained with the new options ‘--no-user-files’ and ‘--no-site-files’.
Alternatives to the site and user customization files ‘Makevars.site’ and ‘~/.R/Makevars’ can be specified _via_ the environment variables ‘R_MAKEVARS_SITE’ and ‘R_MAKEVARS_USER’ respectively. These can be used to suppress the use of the default files by setting an empty value (where possible) or a non-existent path.
‘sys.source()’ did not report error locations when ‘keep.source = TRUE’.
‘as.POSIXct.numeric’ was coercing ‘origin’ using the ‘tz’ argument and not ‘"GMT"’ as documented (PR#14973).
‘str(d)’ no longer gives an error when ‘names(d)’ contain illegal multibyte strings (PR#15247).
Profiling of built-in functions with ‘line.profiling= TRUE’ did not record the line from which they were called.
‘citation(pkg)’ dropped the header and footer specified in the ‘CITATION’ file (PR#15257).
Quotes were handled differently when reading the first line and reading the rest, so ‘read.table()’ misread some files that contained quote characters (PR#15245).
‘cat()’ with ‘sep’ a character vector of length greater than one and more than one argument was using separators inconsistently (PR#15261).
On Windows in R 3.0.0, ‘savePlot()’ failed because of an incorrect check on the argument count.
‘unzip(list = TRUE)’ returned ‘Names’ as a factor and not a character vector (as documented) for the internal method. (Noticed by Sean O'Riordain.)
‘contourLines()’ now checks more comprehensively for conformance of its ‘x’, ‘y’ and ‘z’ arguments (it was used incorrectly in package ‘R2G2’).
Saved graphics display lists are R version-specific. Attempting to load workspaces containing them (or some other version-specific objects) aborted the load in R 3.0.0 and earlier; now it does a partial load and generates a warning instead.
In R 3.0.0, ‘identify()’ and ‘locator()’ did not record information correctly, so replaying a graph (e.g. by copying it to another device) would fail. (PR#15271)
Calling ‘file.copy()’ or ‘dirname()’ with the invalid input ‘""’ (which was being used in packages, despite not being a file path) could have caused a segfault.
‘dirname("")’ is now ‘""’ rather than ‘"."’ (unless it segfaulted).
‘supsmu()’ could read/write outside its input vectors for very short inputs (seen in package ‘rms’ for ‘n = 4’).
‘as.dendrogram()’'s ‘hclust’ method uses less memory and hence gets considerably faster for large (n ~ 1000) clusterings, thanks to Daniel Müllner. (PR#15174)
The return value when all workers failed from ‘parallel::mclapply(mc.presechedule = TRUE)’ was a list of strings and not of error objects. (Spotted by Karl Forner and Bernd Bischl.)
In R 3.0.0, when ‘help()’ found multiple pages with the same alias, the HTML display of all the selections was not produced. (PR#15282)
‘splinefun(method="monoH.FC")’ now produces a function with first argument named ‘x’ and allows ‘deriv=3’, as documented. (PR#15273)
‘summaryRprof()’ would only read the first ‘chunksize’ lines of an ‘Rprof’ file produced with ‘line.profiling=TRUE’. By default, this is the first 100 seconds. (PR#15288)
‘lsfit()’ produced an incorrect error message when argument ‘x’ had more columns than rows or ‘x’ had a different number of rows than ‘y’. (Spotted by Renaud Gaujoux.)
Binary operations on equal length vectors copied the class name from the second operand when the first had no class name, but did not set the object bit. (PR#15299)
‘write.table()’ did not check that factors were constructed correctly, and so caused a segment fault when writing bad ones. (PR#15300)
The internal HTTP server no longer chokes on POST requests without body. It will also pass-through other request types for custom handlers (with the method stored in Request-Method header) instead of failing.
‘help.request()’ could not determine the current version of R on CRAN. (PR#15241)
