This blog is updated daily.
A general description is here.
Convenience function ‘hasName()’ has been added; it is intended to
replace the common idiom ‘!is.null(x$name)’ without the usually
unintended partial name matching.
‘format(<AsIs>)’ looks more regular, also for non-character atomic matrices.
Use ‘options(deparse.max.lines=)’ to limit the number of lines recorded in ‘.Traceback’ and other deparsing activities.
‘abbreviate()’ gains an option ‘named = TRUE’.
Calls to ‘setMethod()’ no longer print a message when creating a generic function in those cases where that is natural: S3 generics and primitives.
‘str(I(matrix(..)))’ now looks as always intended.
‘parallel::mccollect()’ now returns a named list (as documented) when called with ‘wait = FALSE’. (Reported by Michel Lang.)
‘rbeta(4, NA)’ and similarly ‘rgamma()’ and ‘rnbinom()’ now return ‘NaN’'s with a warning, as other r<dist>(), and as documented. (PR#17155)
Using ‘options(checkPackageLicense = TRUE)’ no longer requires acceptance of the licence for non-default standard packages such as ‘compiler’. (Reported by Mikko Korpela.)
When an S4 class name matches multiple classes in the S4 cache, perform a dynamic search in order to obey namespace imports. This should eliminate annoying messages about multiple hits in the class cache. Also, pass along the package from the ‘ClassExtends’ object when looking up superclasses in the cache.
‘c()’'s argument ‘use.names’ is documented now, as belonging to the (C internal) default method. In “parallel”, argument ‘recursive’ is also moved from the generic to the default method, such that the formal argument list of ‘base’ generic ‘c()’ is just ‘(...)’.