This blog is updated daily.
A general description is here.
‘factor()’ now uses ‘order()’ to sort its levels, not ‘sort.list()’. This makes ‘factor()’ support custom vector-like objects if methods for the appropriate generics are defined. This change has the side effect of making ‘factor()’ succeed on empty or length-one non-atomic vector(-like) types (e.g., list), where it failed before.
‘tempdir(check = TRUE)’ recreates the ‘tmpdir()’ if it is no longer valid.
New ‘askYesNo()’ function and ‘"askYesNo"’ option to ask the user binary response questions in a customizable but consistent way. (Suggestion of PR#17242.)
‘isTRUE()’ is more tolerant and now true in ‘x <- rlnorm(99); isTRUE(median(x) == quantile(x)["50%"])’.
New function ‘isFALSE()’ defined analogously to ‘isTRUE()’.
The default symbol table size has been increased from 4119 to 49157; this may improve symbol resolution performance when many packages are loaded. (Suggested by Jim Hester.)
(Windows mainly.) High Unicode code points which require surrogate pairs are now handled. All systems should properly handle surrogate pairs, even those systems that don't need to make use of them. (PR#16098)
‘line(x, y)’ now correctly computes the medians of the left and right group's x-values and in all cases reproduces straight lines.
‘installed.packages()’ on Windows would fail when ‘file.mtime()’ (?)
returned NA.
‘parse()’ no longer gives spurious warnings when extracting srcrefs from a file not encoded in the current locale.
This was seen from ‘R CMD check’ with ‘inst/doc/*.R’ files, and ‘check’ has some additional protection for such files.
‘fourfoldplot()’ could encounter integer overflow when calculating the odds ratio. (PR#17286)
‘readRDS(url(....))’ now works.
‘file.mtime()’ no longer returns NA on Windows when the file or directory is being used by another process. This affected ‘installed.packages()’, which is now protected against this.
‘aggregate(<data.frame>, drop = FALSE)’ now also works in case of near-equal numbers in ‘by’. (PR#16918)