[Rd] R 4.2.0 is released

peter dalgaard pd@|gd @end|ng |rom gm@||@com
Fri Apr 22 10:19:36 CEST 2022

The build system rolled up R-4.2.0.tar.gz (codename "Vigorous Calisthenics") this morning.

This is a major update, notably containing extensive rework on the Windows port and its toolchain, including UTF-8 support.

The list below details the changes in this release. 

You can get the source code from


or wait for it to be mirrored at a CRAN site nearer to you.

Binaries for various platforms will appear in due course.

For the R Core Team,

Peter Dalgaard

These are the checksums (md5 and SHA-256) for the freshly created files, in case you wish
to check that they are uncorrupted:

MD5 (AUTHORS) = 320967884b547734d6279dedbc739dd4
MD5 (COPYING) = eb723b61539feef013de476e68b5c50a
MD5 (COPYING.LIB) = a6f89e2100d9b6cdffcea4f398e37343
MD5 (FAQ) = f593bc2137bcb005337630ca5611a26f
MD5 (INSTALL) = 7893f754308ca31f1ccf62055090ad7b
MD5 (NEWS) = c154effcc08d4202851e282bbac50859
MD5 (NEWS.0) = bfcd7c147251b5474d96848c6f57e5a8
MD5 (NEWS.1) = eb78c4d053ec9c32b815cf0c2ebea801
MD5 (NEWS.2) = b38d94569700664205a76a7de836ba83
MD5 (NEWS.3) = e55ed2c8a547b827b46e08eb7137ba23
MD5 (R-latest.tar.gz) = f1d4b7fec9e15835fdcfb8369ef039c0
MD5 (README) = f468f281c919665e276a1b691decbbe6
MD5 (RESOURCES) = a79b9b338cab09bd665f6b62ac6f455b
MD5 (THANKS) = 45b6d2e88a6ecb5b24fa33a781351cd5
MD5 (VERSION-INFO.dcf) = 3adb7939bc77f583d2472a43824072cd
MD5 (R-4/R-4.2.0.tar.gz) = f1d4b7fec9e15835fdcfb8369ef039c0

60a0d150e6fc1f424be76ad7b645d236b56e747692a4679f81ce6536c550e949  AUTHORS
e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4  COPYING
6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3  COPYING.LIB
1b1f962382ff185e14b6b5b9b40dc87360399466c7d7ce928ae443261e3955c9  FAQ
f87461be6cbaecc4dce44ac58e5bd52364b0491ccdadaf846cb9b452e9550f31  INSTALL
faab2a0cdd10fa456fcdbbb409e2fd6fd0afe8d3d5172ce13fbed176976a3633  NEWS
4e21b62f515b749f80997063fceab626d7258c7d650e81a662ba8e0640f12f62  NEWS.0
12b30c724117b1b2b11484673906a6dcd48a361f69fc420b36194f9218692d01  NEWS.1
cde079b6beab7d700d3d4ecda494e2681ad3b7f8fab13b68be090f949393ec62  NEWS.2
1910a2405300b9bc7c76beeb0753a5249cf799afe175ce28f8d782fab723e012  NEWS.3
38eab7719b7ad095388f06aa090c5a2b202791945de60d3e2bb0eab1f5097488  R-latest.tar.gz
2fdd3e90f23f32692d4b3a0c0452f2c219a10882033d1774f8cadf25886c3ddc  README
8b7d3856100220f4555d4d57140829f2e81c27eccec5b441f5dce616e9ec9061  RESOURCES
8319c5415de58ee10d4bc058d79c370fd8e6b2ad09e25d7a1e04b74ca5f380a6  THANKS
b4aa7d9d51ed8145caa4490012cc8e33033b761c4e8eead49136b69cd481fc2f  VERSION-INFO.dcf
38eab7719b7ad095388f06aa090c5a2b202791945de60d3e2bb0eab1f5097488  R-4/R-4.2.0.tar.gz

This is the relevant part of the NEWS file



    * The formula method of aggregate() now matches the generic in
      naming its first argument x (resolving PR#18299 by Thomas

      This means that calling aggregate() with a formula as a named
      first argument requires name formula in earlier versions of R and
      name x now, so portable code should not name the argument (code
      in many packages did).

    * Calling && or || with either argument of length greater than one
      now gives a warning (which it is intended will become an error).

    * Calling if() or while() with a condition of length greater than
      one gives an error rather than a warning.  Consequently,
      environment variable _R_CHECK_LENGTH_1_CONDITION_ no longer has
      any effect.

    * Windows users should consult the WINDOWS section below for some
      profound changes including

        * Support for 32-bit builds has been dropped.

        * UTF-8 locales are used where available.

        * The default locations for the R installation and personal
          library folder have been changed.

      Thanks to Tomas Kalibera for months of work on the Windows port
      for this release.


    * matrix(x, n, m) now warns in more cases where length(x) differs
      from n * m, as suggested by Abby Spurdle and Wolfgang Huber in
      Feb 2021 on the R-devel mailing list.

      This warning can be turned into an error by setting environment
      variable _R_CHECK_MATRIX_DATA_ to TRUE: R CMD check --as-cran
      does so unless it is already set.

    * Function file_test() in package utils gains tests for symlinks,
      readability and writability.

    * capabilities("libxml") is now false.

      The description of capabilities("http/ftp") now reflects that it
      refers to the default method, no longer the internal one.

    * simplify2array() gains an except argument for controlling the
      exceptions used by sapply().

    * Environment variables R_LIBS_USER and R_LIBS_SITE are both now
      set to the R system default if unset or empty, and can be set to
      NULL to indicate an empty list of user or site library

    * The warning for axis()(-like) calls in cases of relatively small
      ranges (typically in log-scale situations) is slightly improved
      _and_ suppressed from explicit calls to .axisPars() as has always
      been the intention.

    * The contrasts setter function `contrasts<-` gains an explicit
      default how.many = NULL rather than just using missing(how.many).

    * grid.pretty() gains a new optional argument n = 5.

    * There is a new function .pretty() with option bounds as a
      technical-utility version of pretty().  It and pretty() gain a
      new argument f.min with a better than back-compatible default.

    * Function grDevices::axisTicks() and related functions such as
      graphics::axis() work better, notably for the log scale; partly
      because of the pretty() improvements, but also because care is
      taken e.g., when ylim is finite but diff(ylim) is infinite.

    * nclass.FD() gains a digits option.

    * The R Mathlib internal C function bd0() (called indirectly from a
      dozen probability density and distribution functions such as
      dpois(), dbinom(), dgamma(), pgamma() _etc_) has been
      complemented by a more sophisticated and (mostly) more accurate C
      function ebd0(), currently called only by internal dpois_raw()
      improving accuracy for R level dpois() and potentially others
      calling it such as dnbinom(), dgamma() or pgamma().  (Thanks to
      Morten Welinder's PR#15628.)

    * write.ftable() gains sep = " " argument as suggested by Thomas

    * The names of the locale categories supported by R's
      Sys.getlocale() and Sys.setlocale() are now provided by variable
      .LC.categories in the base namespace.

    * The Date and POSIXt methods for hist() and the histogram method
      for plot() now also use the new default col = "lightgray" in
      consistency with the corresponding change to hist()'s default for
      R 4.0.0.

    * hist.default() gains new fuzz argument, and the histogram plot
      method no longer uses fractional axis ticks when displaying
      counts ("Frequency").

    * mapply() and hence Map() now also obey the "max-or-0-if-any"
      recycling rule, such that, e.g., Map(`+`, 1:3, 1[0]) is valid

    * as.character(<obj>) for "hexmode" or "octmode" objects now
      fulfils the important basic rule as.character(x)[j] ===

    * The set utility functions, notably intersect() have been tweaked
      to be more consistent and symmetric in their two set arguments,
      also preserving a common mode.

    * substr(ch, start,end) <- new now e.g., preserves names(ch); ditto
      for substring(), thanks to a patch from Brodie Gaslam.

    * plot(<lm>) gains a extend.ylim.f argument, in partial response to
      PR#15285; further PR#17784 is fixed thanks to several
      contributors and a patch by Elin Waring.  The Cook's dist
      contours get customizable via cook.col and cook.lty with a
      different default color and their legend is nicer by default and
      customizable via cook.legendChanges.

    * Attempting to subset an object that is not subsettable now
      signals an error of class notSubsettableError. The
      non-subsettable object is contained in the object field of the
      error condition.

    * Subscript-out-of-bounds errors are now signaled as errors of
      class subscriptOutOfBoundsError.

    * Stack-overflow errors are now signaled as errors inheriting from
      class stackOverflowError. See ?stackOverflowError for more

    * New partly experimental Sys.setLanguage() utility, solving the
      main problem of PR#18055.

    * gettext() and gettextf() get a new option trim = TRUE which when
      set to false allows translations for strings such as "Execution
      halted\n" typical for C code.

    * An experimental implementation of hash tables is now available.
      See ?hashtab for more details.

    * identical() gains a extptr.as.ref argument for requesting that
      external pointer objects be compared as reference objects.

    * reorder() gets an argument decreasing which it passes to sort()
      for level creation; based on the wish and patch by Thomas Soeiro
      in PR#18243.

    * as.vector() gains a data.frame method which returns a simple
      named list, also clearing a long standing 'FIXME' to enable
      as.vector(<data.frame>, mode="list").  This breaks code relying
      on as.vector(<data.frame>) to return the unchanged data frame.

    * legend() is now vectorized for arguments cex, x.intersp, and
      text.width.  The latter can now also be specified as a vector
      (one element for each column of the legend) or as NA for
      computing a proper column wise maximum value of strwidth(legend).
      The argument y.intersp can be specified as a vector with one
      entry for each row of the legend.

      legend() also gains new arguments title.cex and title.font.
      Thanks to Swetlana Herbrandt.

    * Deparsing no longer remaps attribute names dim, dimnames, levels,
      names and tsp to historical S-compatible names (which structure()
      maps back).

    * sample() and sample.int() have additional sanity checks on their
      size and n arguments.

      all.equal.numeric() gains a sanity check on its tolerance
      argument - calling all.equal(a, b, c) for three numeric vectors
      is a surprisingly common error.

      mean(na.rm =), rank(na.last =), barplot(legend.text =),
      boxplot(), contour(drawlabels =), polygon(border =) and
      methods::is(class2 =) have more robust sanity checks on their

      R CMD Rd2pdf (used by R CMD check) has a more robust sanity check
      on the format of \alias{} commands.

    * psigamma(x, deriv) for negative x now also works for deriv = 4
      and 5; their underlying C level dpsifn() is documented in
      'Writing R Extensions'.

    * The HTML help system now uses HTML5 (wish of PR#18149).

    * ks.test() now provides exact p-values also with ties and MC
      p-values in the two-sample (Smirnov) case.  By Torsten Hothorn.

    * ks.test() gains a formula interface, with y ~ 1 for the
      one-sample (Kolmogorov) test and y ~ group for the two-sample
      (Smirnov) test.  Contributed by Torsten Hothorn.

    * The return value from ks.test() now has class c("ks.test",
      "htest") - packages using try() need to take care to use
      inherits() and not == on the class.

    * New functions psmirnov(), qsmirnov() and rsmirnov() in package
      stats implementing the asymptotic and exact distributions of the
      two-sample Smirnov statistic.

    * iconv() now allows sub = "c99" to use C99-style escapes for UTF-8
      inputs which cannot be converted to encoding to.

    * In a forward pipe |> expression it is now possible to use a named
      argument with the placeholder _ in the rhs call to specify where
      the lhs is to be inserted.  The placeholder can only appear once
      on the rhs.

    * The included LAPACK sources have been updated to version 3.10.0,
      except for the four Fortran 77 routines which 3.10.0 has
      re-implemented in Fortran 90 (where the older versions have been
      retained as the R build process does not support Fortran 90).

    * path.expand() and most other uses of tilde expansion now warn if
      a path would be too long if expanded.  (An exception is
      file.exists(), which silently returns false.)

    * trunc(<Date>, *) now supports units = "months" or "years" for
      consistency with the POSIXt method, thanks to Dirk Eddelbuettel's
      proposal in PR#18099.

    * list2DF() now checks that its arguments are of the same length,
      rather than use recycling.

    * The HTML help system has several new features: LaTeX-like math
      can be typeset using either KaTeX or MathJax, usage and example
      code is highlighted using Prism, and for dynamic help the output
      of examples and demos can be shown within the browser if the
      knitr package is installed. These features can be disabled by
      setting the environment variable _R_HELP_ENABLE_ENHANCED_HTML_ to
      a false value.


    * The graphics engine version, R_GE_version, has been bumped to 15
      and so packages that provide graphics devices should be

    * The grid package now allows the user to specify a "vector" of
      pattern fills.  The fill argument to gpar() accepts a list of
      gradients and/or patterns and the functions linearGradient(),
      radialGradient(), and pattern() have a new group argument.

      Points grobs (data symbols) can now also have a pattern fill.

      The grobCoords() function now returns a more informative and
      complex result.

    * The grid package has new functions for drawing isolated groups:
      grid.group(), grid.define(), and grid.use().  These functions add
      compositing operators and affine transformations to R's graphics

      The grid package also has new functions for stroking and filling
      paths: grid.stroke(), grid.fill(), and grid.fillStroke().

      A new function as.path() allows the user to specify the fill rule
      for a path that is to be used for clipping, stroking, or filling;
      available options are "winding" and "evenodd".  A new function
      as.mask() allows the user to specify the type of a mask;
      available options are "alpha" and "luminance".

      These new features are only supported so far (at most) on the
      Cairo-based graphics devices and on the pdf() device.

    * dev.capabilities() reports on device support for the new

    * par() now warns about unnamed non-character arguments to prevent
      misuse such as {usr <- par("usr"); par(usr)}.


    * R uses UTF-8 as the native encoding on recent Windows systems (at
      least Windows 10 version 1903, Windows Server 2022 or Windows
      Server 1903).  As a part of this change, R uses UCRT as the C
      runtime.  UCRT should be installed manually on systems older than
      Windows 10 or Windows Server 2016 before installing R.

    * The default personal library on Windows, folder R\win-library\x.y
      where x.y stands for R release x.y.z, is now a subdirectory of
      Local Application Data directory (usually a hidden directory
      C:\Users\username\AppData\Local).  Use shell.exec(.libPaths()[1])
      from R to open the personal library in Explorer when it is first
      in the list (PR#17842).

    * R uses a new 64-bit Tcl/Tk bundle.  The previous 32-bit/64-bit
      bundle had a different layout and can no longer be used.

    * Make files and installer scripts for Windows have been tailored
      to Rtools42, the newly recommended 64-bit gcc 10.3 MinGW-W64 UCRT

    * Rtools42 by default uses the Windows security features ASLR and
      DEP; hence CRAN builds of R and packages also do.

    * R now supports files Makevars.ucrt, Makefile.ucrt, configure.ucrt
      and cleanup.ucrt in packages, which are used in preference to the
      .win variants.  This allows keeping the .win files around to
      support older versions of R.  This feature will be removed in the
      future once support for older versions of R would no longer be

    * R.version gains a new field crt (only on Windows) to denote the C
      runtime.  The value is "ucrt".

    * On Windows, download.file(method = "auto") and url(method =
      "default") now follow Unix in using "libcurl" for all except
      file:// URIs.

    * Rtools42 includes an unpatched Msys2 build of GNU tar.  Paths
      including drive letters can be made to work by adding
      --force-local to environment variable TAR_OPTIONS.  (Rtools40 and
      earlier included a patched version which defaulted to this

    * Installer builds of R automatically find the Rtools42 software
      collection as well as the compiler toolchain.  No PATH setting is
      required from the user.

    * The default installation directory of R for a user-only
      installation has been changed to the User Program Files directory
      (usually a hidden directory
      C:\Users\username\AppData\Local\Programs) to follow Windows
      conventions.  Use shell.exec(R.home()) from R to open the R
      installation directory in Explorer (PR#17842).

    * R now supports installation-time patching of packages.  Patches
      may be installed from a supplied URL or a local directory or
      disabled.  Patches are included into the installed packages for
      reference.  This experimental feature may be removed in the

    * libcurl is now required for building from source.

    * The clipboard connection now works also with text in other than
      the current native encoding (PR#18267, with Hiroaki Yutani).
      Text is always pasted to the clipboard in UTF16-LE and the
      encoding argument is ignored.

    * The internal case-changing functions are now used by default on
      Windows - this circumvents problems (for example with E acute) of
      the UCRT Windows' runtime.

    * R on Windows now uses the system memory allocator.  Doug Lea's
      allocator was used since R 1.2.0 to mitigate performance
      limitations seen with system allocators on earlier versions of

    * memory.limit() and memory.size() are now stubs on Windows (as on

    * Applications embedding R on Windows can now use additional
      callbacks, which have so far only been available only on Unix


    * Facilities for accessing ftp:// sites are no longer tested
      (except _pro tem_ for curlGetHeaders()) as modern browsers have
      removed support.

    * R can now be built with DEFS = -DSTRICT_R_HEADERS .


    * R CMD INSTALL no longer tangles vignettes. This completes an R
      CMD build change in R 3.0.0 and affects packages built before R
      3.0.2. Such packages should be re-made with R CMD build to have
      the tangled R code of vignettes shipped with the tarball.

    * USE_FC_LEN_T will become the default: this uses the correct
      prototypes for Fortran BLAS/LAPACK routines called from C/C++,
      and requires adjustment of most such calls - see 'Writing R
      Extensions' SS6.6.2.  (This has been supported since R 3.6.2.)

    * Package installation speed for packages installed with
      keep.source has been improved. This resolve the issue reported by
      Ofek Shilon in PR#18236.


    * R CMD check can optionally report files/directories left behind
      in home, /tmp (even though TMPDIR is set) and other directories.
      See the "R Internals" manual for details.

    * R CMD check now reports byte-compilation errors during
      installation.  These are not usually fatal but may result in
      parts of the package not being byte-compiled.

    * _R_CHECK_DEPENDS_ONLY_ can be applied selectively to examples,
      tests and/or vignettes in R CMD check: see the "R Internals"

    * _R_CHECK_SRC_MINUS_W_IMPLICIT_ now defaults to true: recent
      versions of Apple clang on macOS have made implicit function
      declarations in C into a compilation error.

    * R CMD check --as-cran makes use of the environment variable
      AUTORECONF.  See the "R Internals" manual SS8 for further details.

    * R CMD check --use-valgrind also uses valgrind when re-building
      vignettes as some non-Sweave vignettes unhelpfully comment out
      all their code when R CMD check runs vignettes.

    * Errors in re-building vignettes (unless there are LaTeX errors)
      are reported by R CMD check as ERROR rather than WARNING when
      running vignettes has been skipped (as it frequently is in CRAN
      checks and by --as-cran).

    * R CMD Rd2pdf gains a --quiet option that is used by R CMD build
      when building the PDF package manual.

    * R CMD Rd2pdf now always runs LaTeX in batch mode, consistent with
      Texinfo >= 6.7. The --batch option is ignored.

    * R CMD build and R CMD check now include the Rd file name and line
      numbers in the error message of an \Sexpr evaluation failure.

    * For packages using the \doi Rd macro (now an install-time \Sexpr)
      but no other dynamic Rd content, R CMD build now produces a
      smaller tarball and is considerably faster - skipping temporary
      package installation.


    * The non-API header R_ext/R-ftp-http.h is no longer provided, as
      the entry points it covered are now all defunct.

    * A number of non-API declarations and macro definitions have been
      moved from the installed header Rinternals.h to the internal
      header Defn.h. Packages that only use entry points and
      definitions documented to be part of the API as specified in
      'Writing R Extensions' SS6 should not be affected.

    * The macro USE_RINTERNALS no longer has any effect when compiling
      package code.  Packages which also use R_NO_REMAP will need to
      ensure that the remapped names are used for calls to API
      functions that were formerly also made available as macros.

    * The deprecated legacy S-compatibility macros PROBLEM, MESSAGE,
      ERROR, WARN, WARNING, RECOVER, ... are no longer defined in
      R_exts/RS.h (included by R.h).  Replace these by calls to
      Rf_error and Rf_warning (defined in header R_ext/Error.h included
      by R.h).

      Header R_ext/RS.h no longer includes R_ext/Error.h.

    * Header R_ext/Constants.h (included by R.h) when included from C++
      now includes the C++ header cfloat rather than the C header
      float.h (now possible as C++11 is required).

    * The legacy S-compatibility macros DOUBLE_* in R_ext/Constants.h
      (included by R.h) are deprecated.

    * The deprecated S-compatibility macros SINGLE_* in
      R_ext/Constants.h (included by R.h) have been removed.

    * R_Calloc, R_Free and R_Realloc are preferred to their unprefixed
      forms and error messages now use the prefix. These forms were
      introduced in R 3.4.0 and are available even when
      STRICT_R_HEADERS is defined.

    * rmultinom has been documented in 'Writing R Extensions' SS6 so is
      now part of the R API.

    * Similarly, Rtanpi, called from R level tanpi() is now part of the
      R API.

    * The long-deprecated, undocumented and non-API entry point call_R
      is no longer declared in R_ext/RS.h (included by R.h).

    * The header S.h which has been unsupported since Jan 2016 has been
      removed.  Use R.h instead.


    * The (non-default and deprecated) method = "internal" for
      download.file() and url() no longer supports http:// nor ftp://
      URIs.  (It is used only for file:// URIs.)

      On Windows, download.file(method = "wininet") no longer supports
      ftp:// URIs.  (It is no longer the default method, which is
      "libcurl" and does.)

      On Windows, the deprecated method = "wininet" now gives a warning
      for http:// and https:// URIs for both download.file() and url().
      (It is no longer the default method.)

    * On Windows, the command-line option --max-mem-size and
      environment variable R_MAX_MEM_SIZE are defunct.  The memory
      allocation limit was important for 32-bit builds, but these are
      no longer supported.

    * default.stringsAsFactors() is now formally deprecated, where that
      was only mentioned on its regular help page, previously.  So it
      now gives a warning if called.

    * unix.time() is defunct now; it had been deprecated since R 3.4.0.


    * Setting digits = 0 in format(), print.default() (and hence
      typically print()) or options() is again invalid.  Its behaviour
      was platform-dependent, and it is unclear what "zero significant
      digits" should mean (PR#18098).

    * Messages from C code in the cairo section of package grDevices
      are now also offered for translation, thanks to Michael Chirico's

    * mean(x) with finite x now is finite also without "long.double"

    * R CMD Rd2pdf no longer leaves an empty build directory behind
      when it aborts due to an already existing output file.  (Thanks
      to Sebastian Meyer's PR#18141.)

    * density(x, weights = w, na.rm = TRUE) when anyNA(x) is true, now
      removes weights "in parallel" to x, fixing PR#18151, reported by
      Matthias Gondan.  Additionally, it gets a subdensity option.

    * Conversion of \Sexpr[]{<expR>} to LaTeX or HTML no longer
      produces long blocks of empty lines when <expR> itself contains
      several lines all producing empty output.  Thanks to a report and
      patch by Ivan Krylov posted to R-devel.

    * R CMD build no longer fails if a package vignette uses child
      documents and inst/doc exists.  (Thanks to Sebastian Meyer's

    * When an R documentation ('help' source) file man/foo.Rd in a
      package has \donttest{..} examples with a syntax error, it is now
      signalled as ERROR and with correct line numbers relating to the
      *-Ex.R file, thanks to Duncan Murdoch and Sebastian Meyer's
      reports and patch proposals in PR#17501.

    * Improved determination of the correct translation domain in
      non-base packages, addressing the combination of PR#18092 and
      PR#17998 (#c6) with reports and _augmented_ patch #2904 by
      Suharto Anggono.

      Note that "R-base" is no longer the default domain e.g., for
      top-level calls to gettext(); rather translation needs explicit
      domain = * specification in such cases.

    * identical(attrib.as.set=FALSE) now works correctly with data
      frames with default row names (Thanks to Charlie Gao's PR#18179).

    * txtProgressBar() now enforces a non-zero width for argument char,
      without which no progress can be visible.

    * dimnames(table(d)) is more consistent in the case where d is a
      list with a single component, thanks to Thomas Soeiro's report to

      Further, table(d1, d2) now gives an error when d1 and d2 are data
      frames as suggested by Thomas in PR#18224.

    * Fix for drawing semi-transparent lines and fills on the native
      Windows graphics device (PR#18219 and PR#16694).  Thanks to Nick
      Ray for helpful diagnosis on Bugzilla.

    * The deparser now wraps sub-expressions such as if(A) ..  with
      parentheses when needed; thanks to Duncan Murdoch's PR#18232 and
      Lionel Henry's patches there.

    * remove.packages() no longer tries to uninstall Priority: base
      packages, thanks to a report and suggestions by Colin Fay in

    * win.metafile() now has xpinch and ypinch arguments so that the
      user can override Windows' (potentially wrong) guess at device

    * x[i] and x[[i]] for non-integer i should now behave in all cases
      as always documented: the index used is equivalent to
      as.integer(i) unless that would overflow where trunc(i) is used
      instead; thanks to Suharto Anggono's report and patch proposals
      in PR#17977.

    * asOneSidedFormula() now associates the resulting formula with the
      global environment rather than the evaluation environment created
      for the call.

    * <bibentry>$name now matches the field name case-insensitively,
      consistent with bibentry() creation and the replacement method.

    * cbind() failed to detect some length mismatches with a mixture of
      time-series and non-time-series inputs.

    * The default LaTeX style file Sweave.sty used by the RweaveLatex
      driver no longer loads the obsolete ae package; thanks to a
      report by Thomas Soeiro in PR#18271.  Furthermore, it now skips
      \usepackage[T1]{fontenc} for engines other than pdfTeX (if
      detected) or if the new [nofontenc] option is used.

    * smooth.spline() now stores its logical cv argument more safely,
      fixing a rare bug when printing, and also stores n.

    * smooth.spline(x,y,*) now computes the cv.crit statistic
      correctly, also when is.unsorted(x), fixing PR#18294.

    * The data.frame method of rbind() now warns when binding
      not-wholly-recycling vectors, by analogy to the default method
      (for matrices).

    * setAs() finds the correct class for name to when multiple
      packages define a class with that name. Thanks to Gabor Csardi
      for the report.

    * Fix for detaching a package when two classes of the same name are
      present in method signatures for the same generic. Thanks to
      Gabor Csardi for the report.

    * match.arg("", c("", "a", "B")) gives a better error message, in
      part from PR#17959, thanks to Elin Waring.

    * R CMD Sweave --clean no longer removes pre-existing files or
      subdirectories (PR#18242).

    * The quartz() device no longer splits polylines into subpaths.
      That has caused narrowly-spaced lines with many points to always
      look solid even when dashed line type was used due to dash phase

    * Deparsing constructs such as quote(1 + `!`(2) + 3) works again as
      before R 3.5.0, thanks to the report and patch in PR#18284 by
      Suharto Anggono.

    * as.list(f) for a factor f now keeps names(f), fixing PR#18309.

    * qbeta(.001, .9, .009) and analogous qf() calls now return a
      correct value instead of NaN or wrongly 1, all with a warning;
      thanks to the report by Ludger Goeminne in PR#18302.

    * plot.lm() failed to produce the plot of residuals vs.  factor
      levels (i.e., which=5 when leverages are constant) for models
      with character predictors (PR#17840).

    * interaction.plot(..., xtick = TRUE) misplaced the x-axis line

    * Not strictly fixing a bug, format()ing and print()ing of
      non-finite Date and POSIXt values NaN and +/-Inf no longer show
      as NA but the respective string, e.g., Inf, for consistency with
      numeric vector's behaviour, fulfilling the wish of PR#18308.

    * R CMD check no longer runs test scripts generated from
      corresponding .Rin files twice and now signals an ERROR if
      processing an .Rin script fails.

    * tools::Rd2txt() used for plain-text help pages now renders \hrefs
      (if tools::Rd2txt_options(showURLs = TRUE)) and \urls with
      percent-encoding and standards-compliant delimiting style (angle
      brackets and no URL: prefix).  \email is now rendered with a
      mailto: prefix.

Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes using cbs.dk  Priv: PDalgd using gmail.com

R-devel using r-project.org mailing list

More information about the R-announce mailing list