R 3.2.2 (codename “Fire Safety”) was released last weekend. 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.
SOME OF THE CHANGES
I personally found two things particularly interesting in this release:
- setInternet2(TRUE) is now the default for windows (which will save people from getting “Error in file(con, “r”)” when using the installr package)
- The dendrogram method of labels() is much more efficient for large dendrograms since it now uses rapply(). This is expected to speedup various functions in the dendextend R package (a package for visualizing, adjusting, and comparing dendrograms, which heavily relies on labels.dendrogram).
Also, David Smith (from Revolution/Microsoft) highlighted in his post several of the updates in R 3.2.2 he found interesting – mentioning how the new default for accessing the web with R will rely on the HTTPS protocol, and of improving the accuracy in the extreme tails of the t and hypergeometric distributions.
Upgrading to R 3.2.2 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 in Rgui:
install.packages("installr") # install
setInternet2(TRUE)
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.). There is also a step by step tutorial (with screenshots) on how to upgrade R on Windows, using the installr package.
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 open an issue in the github page.
CHANGES IN R 3.2.2:
SIGNIFICANT USER-VISIBLE CHANGES
- It is now easier to use secure downloads from https:// URLs on builds which support them: no longer do non-default options need to be selected to do so. In particular, packages can be installed from repositories which offer https:// URLs, and those listed by
setRepositories()
now do so (for some of their mirrors).Support for https:// URLs is available on Windows, and on other platforms if support forlibcurl
was compiled in and if that supports thehttps
protocol (system installations can be expected to do). So https:// support can be expected except on rather old OSes (an example being OS X ‘Snow Leopard’, where a non-system version oflibcurl
can be used).(Windows only) The default method for accessing URLs viadownload.file()
andurl()
has been changed to be"wininet"
using Windows API calls. This changes the way proxies need to be set and security settings made: there have been some reports of sites being inaccessible under the new default method (but the previous methods remain available).
NEW FEATURES
cmdscale()
gets new optionlist.
for increased flexibility when a list should be returned.configure
now supportstexinfo
version 6.0, which (unlike the change from 4.x to 5.0) is a minor update. (Wish of PR#16456.)- (Non-Windows only)
download.file()
with defaultmethod = "auto"
now chooses"libcurl"
if that is available and a https:// or ftps:// URL is used. - (Windows only)
setInternet2(TRUE)
is now the default. The command-line option--internet2
and environment variable R_WIN_INTERNET2 are now ignored.Thus by default the"internal"
method fordownload.file()
andurl()
uses the"wininet"
method: to revert to the previous default usesetInternet2(FALSE)
.This means that https:// can be read by default bydownload.file()
(they have been readable byfile()
andurl()
since R 3.2.0).There are implications for how proxies need to be set (see?download.file
): also,cacheOK = FALSE
is not supported. chooseCRANmirror()
andchooseBioCmirror()
now offer HTTPS mirrors in preference to HTTP mirrors. This changes the interpretation of theirind
arguments: see their help pages.capture.output()
gets optional argumentstype
andsplit
to pass tosink()
, and hence can be used to capture messages.
C-LEVEL FACILITIES
- Header ‘Rconfig.h’ now defines
HAVE_ALLOCA_H
if the platform has the ‘alloca.h’ header (it is needed to definealloca
on Solaris and AIX, at least: see ‘Writing R Extensions’ for how to use it).
INSTALLATION and INCLUDED SOFTWARE
- The
libtool
script generated byconfigure
has been modified to support FreeBSD >= 10 (PR#16410).
BUG FIXES
- The HTML help page links to demo code failed due to a change in R 3.2.0. (PR#16432)
- If the
na.action
argument was used inmodel.frame()
, the original data could be modified. (PR#16436) getGraphicsEvent()
could cause a crash if a graphics window was closed while it was in use. (PR#16438)matrix(x, nr, nc, byrow = TRUE)
failed ifx
was an object of type"expression"
.strptime()
could overflow the allocated storage on the C stack when the timezone had a non-standard format much longer than the standard formats. (Part of PR#16328.)options(OutDec = s)
now signals a warning (which will become an error in the future) whens
is not a string with exactly one character, as that has been a documented requirement.prettyNum()
gains a new optioninput.d.mark
which together with other changes, e.g., the default fordecimal.mark
, fixes someformat()
ting variants with non-defaultgetOption("OutDec")
such as in PR#16411.download.packages()
failed fortype
equal to either"both"
or"binary"
. (Reported by Dan Tenenbaum.)- The
dendrogram
method oflabels()
is much more efficient for large dendrograms, now usingrapply()
. (Comment #15 of PR#15215) - The
"port"
algorithm ofnls()
could give spurious errors. (Reported by Radford Neal.) - Reference classes that inherited from reference classes in another package could invalidate methods of the inherited class. Fixing this requires adding the ability for methods to be “external”, with the object supplied explicitly as the first argument, named
.self
. See “Inter-Package Superclasses” in the documentation. readBin()
could fail on the SPARC architecture due to alignment issues. (Reported by Radford Neal.)qt(*, df=Inf, ncp=.)
now uses the naturalqnorm()
limit instead of returningNaN
. (PR#16475)- Auto-printing of S3 and S4 values now searches for
print()
in the base namespace andshow()
in the methods namespace instead of searching the global environment. polym()
gains acoefs = NULL
argument and returns class"poly"
just likepoly()
which gets a newsimple=FALSE
option. They now lead to correctpredict()
ions, e.g., on subsets of the original data.rhyper(nn, <large>)
now works correctly. (PR#16489)ttkimage()
did not (and could not) work so was removed. Ditto fortkimage.cget()
andtkimage.configure()
. Added two Ttk widgets and missing subcommands for Tk’simage
command:ttkscale()
,ttkspinbox()
,tkimage.delete()
,tkimage.height()
,tkimage.inuse()
,tkimage.type()
,tkimage.types()
,tkimage.width()
. (PR#15372, PR#16450)getClass("foo")
now also returns a class definition when it is found in the cache more than once.
But your R-logo is out of date 🙂
Oh my, good point! Will be fixed right away (and from now ).
I really love the installr package, it makes installing and updating R really easy. It may seam obvious from the changes, but updating from 3.2.1 to 3.2.2 required running ‘setInternet2(TRUE)’ first. I wished to have something similar on the Mac. But on the Mac installation requires sudo which is not so easy from a running R-session. Thanks!
Thanks Peter.
It seems that not all people need the setInternet, but I’ll update the post to help those who do.
Best,
Tal
Sir, when I install a new version of R I want installR to be automatically available, will it be possible (now AFAIK I have to install again every time)
Hi Duleep,
If you upgrade R using installr, you are given the option to copy packages from the old R version to the new one. That would make installr available to you in the new R version as well.
Best,
Tal
And how do I do it on my Mac?