The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version readme.txt (11.5 kB)
Email in envelope

Get an email when there's a new version of R Portable

Home / R-Portable / 3.5.0
Name Modified Size InfoDownloads / Week
Parent folder
R-Portable_3.5.0.paf.exe.sha256 2018-05-15 92 Bytes
R-Portable_3.5.0.paf.exe.sha1 2018-05-15 68 Bytes
R-Portable_3.5.0.paf.exe.md5 2018-05-15 60 Bytes
R-Portable_3.5.0.paf.exe 2018-05-15 84.2 MB
readme.md 2018-05-13 23.5 kB
Totals: 5 Items   84.2 MB 0

CHANGES IN R 3.5.0:

SIGNIFICANT USER-VISIBLE CHANGES:

  • All packages are by default byte-compiled on installation. This makes the installed packages larger (usually marginally so) andmay affect the format of messages and tracebacks (which oftenexclude .Call and similar).

NEW FEATURES:

  • factor() now uses order() to sort its levels, rather thansort.list(). This allows factor() to support custom vector-likeobjects if methods for the appropriate generics are defined. Ithas the side effect of making factor() succeed on empty orlength-one non-atomic vector(-like) types (e.g., "list"), whereit failed before.

  • diag() gets an optional names argument: this may require updatesto packages defining S4 methods for it.

  • chooseCRANmirror() and chooseBioCmirror() no longer have a use HTTPS argument, not needed now all R builds support https://downloads.

  • New summary() method for warnings() with a (somewhatexperimental) print() method.

  • (methods package.) .self is now automatically registered as aglobal variable when registering a reference class method.

  • tempdir(check = TRUE) recreates the tempdir() directory if it isno longer valid (e.g. because some other process has cleaned upthe /tmp directory).

  • New askYesNo() function and "askYesNo" option to ask the userbinary response questions in a customizable but consistent way.(Suggestion of PR#17242.)

  • New low level utilities ...elt(n) and ...length() for workingwith ... parts inside a function.

  • 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 to49157; this may improve the performance of symbol resolution whenmany packages are loaded. (Suggested by Jim Hester.)

  • line() gets a new option iter = 1.

  • Reading from connections in text mode is buffered, significantlyimproving the performance of readLines(), as well as scan() andread.table(), at least when specifying colClasses.

  • order() is smarter about picking a default sort method when itsarguments are objects.

  • available.packages() has two new arguments which control if thevalues from the per-session repository cache are used (defaulttrue, as before) and if so how old cached values can be to beused (default one hour). These arguments can be passed from install.packages(),update.packages() and functions calling that: to enable thisavailable.packages(), packageStatus() and download.file() gain a... argument.

  • packageStatus()'s upgrade() method no longer ignores its ...argument but passes it to install.packages().

  • installed.packages() gains a ... argument to allow arguments(including noCache) to be passed from new.packages(),old.packages(), update.packages() and packageStatus().

  • factor(x, levels, labels) now allows duplicated labels (notduplicated levels!). Hence you can map different values of x tothe same level directly.

  • Attempting to use names<-() on an S4 derivative of a basic typeno longer emits a warning.

  • The list method of within() gains an option keepAttrs = FALSE forsome speed-up.

  • system() and system2() now allow the specification of a maximumelapsed time ('timeout').

  • debug() supports debugging of methods on any object of S4 class"genericFunction", including group generics.

  • Attempting to increase the length of a variable containing NULLusing length()<- still has no effect on the target variable, butnow triggers a warning.

  • type.convert() becomes a generic function, with additionalmethods that operate recursively over list and data.frameobjects. Courtesy of Arni Magnusson (PR#17269).

  • lower.tri(x) and upper.tri(x) only needing dim(x) now work vianew functions .row() and .col(), so no longer call as.matrix() bydefault in order to work efficiently for all kind of matrix-likeobjects.

  • print() methods for "xgettext" and "xngettext" now useencodeString() which keeps, e.g. "\n", visible. (Wish ofPR#17298.)

  • package.skeleton() gains an optional encoding argument.

  • approx(), spline(), splinefun() and approxfun() also work forlong vectors.

  • deparse() and dump() are more useful for S4 objects, dput() nowusing the same internal C code instead of its previous imperfectworkaround R code. S4 objects now typically deparse perfectly,i.e., can be recreated identically from deparsed code.dput(), deparse() and dump() now print the names() informationonly once, using the more readable (tag = value) syntax, notablyfor list()s, i.e., including data frames. These functions gain a new control option "niceNames" (see.deparseOpts()), which when set (as by default) also uses the(tag = value) syntax for atomic vectors. On the other hand,without deparse options "showAttributes" and "niceNames", namesare no longer shown also for lists. as.character(list( c ( now includes the name, as as.character(list(list( always done. m:n now also deparses nicely when m > n. The "quoteExpressions" option, also part of "all", no longerquote()s formulas as that may not re-parse identically.(PR#17378)

  • If the option setWidthOnResize is set and TRUE, R run in aterminal using a recent readline library will set the widthoption when the terminal is resized. Suggested by Ralf Goertz.

  • If multiple on.exit() expressions are set using add = TRUE thenall expressions will now be run even if one signals an error.

  • mclapply() gets an option affinity.list which allows moreefficient execution with heterogeneous processors, thanks toHelena Kotthaus.

  • The character methods for as.Date() and as.POSIXlt() are moreflexible via new arguments tryFormats and optional: see theirhelp pages.

  • on.exit() gains an optional argument after with default TRUE.Using after = FALSE with add = TRUE adds an exit expressionbefore any existing ones. This way the expressions are run in afirst-in last-out fashion. (From Lionel Henry.)

  • On Windows, file.rename() internally retries the operation incase of error to attempt to recover from possible anti-virusinterference.

  • Command line completion on :: now also includes lazy-loaded data.

  • If the TZ environment variable is set when date-time functionsare first used, it is recorded as the session default and so willbe used rather than the default deduced from the OS if TZ issubsequently unset.

  • There is now a [ method for class "DLLInfoList".

  • glm() and glm.fit get the same singular.ok = TRUE argument thatlm() has had forever. As a consequence, in glm(*, method =<your_own>), user specified methods need to accept a singular.okargument as well.

  • aspell() gains a filter for Markdown (.md and .Rmd) files.

  • intToUtf8(multiple = FALSE) gains an argument to allow surrogatepairs to be interpreted.

  • The maximum number of DLLs that can be loaded into R e.g. _via_dyn.load() has been increased up to 614 when the OS limit on thenumber of open files allows.

  • Sys.timezone() on a Unix-alike caches the value at first use in asession: inter alia this means that setting TZ later in thesession affects only the current time zone and not the _system_one.Sys.timezone() is now used to find the system timezone to pass tothe code used when R is configured with --with-internal-tzcode

  • When tar() is used with an external command which is detected tobe GNU tar or libarchive tar (aka bsdtar), a differentcommand-line is generated to circumvent line-length limits in theshell.

  • system(*, intern = FALSE), system2() (when not capturing output),file.edit() and file.show() now issue a warning when the externalcommand cannot be executed.

  • The "default" ("lm" etc) methods of vcov() have gained newoptional argument complete = TRUE which makes the vcov() methodsmore consistent with the coef() methods in the case of singulardesigns. The former (back-compatible) behavior is given byvcov(*, complete = FALSE).

  • coef() methods (for lm etc) also gain a complete = TRUE optionalargument for consistency with vcov().For "aov", both coef() and vcov() methods remain back-compatiblyconsistent, using the other default, complete = FALSE.

  • attach(*, pos = 1) is now an error instead of a warning.

  • New function getDefaultCluster() in package parallel to get thedefault cluster set via setDefaultCluster().

  • str(x) for atomic objects x now treats both cases of is.vector(x)similarly, and hence much less often prints "atomic". This is aslight non-back-compatible change producing typically both moreinformative and shorter output.

  • write.dcf() gets optional argument useBytes.

  • New, partly experimental packageDate() which tries to get a valid"Date" object from a package DESCRIPTION file, thanks tosuggestions in PR#17324.

  • tools::resaveRdaFiles() gains a version argument, for use whenpackages should remain compatible with earlier versions of R.

  • ar.yw(x) and hence by default ar(x) now work when x has NAs,mostly thanks to a patch by Pavel Krivitsky in PR#17366. Thear.yw.default()'s AIC computations have become more efficient byusing determinant().

  • New warnErrList() utility (from package nlme, improved).

  • By default the (arbitrary) signs of the loadings from princomp()are chosen so the first element is non-negative.

  • If --default-packages is not used, then Rscript now checks theenvironment variable R_SCRIPT_DEFAULT_PACKAGES. If this is set,then it takes precedence over R_DEFAULT_PACKAGES. If defaultpackages are not specified on the command line or by one of theseenvironment variables, then Rscript now uses the same defaultpackages as R. For now, the previous behavior of not includingmethods can be restored by setting the environment variableR_SCRIPT_LEGACY to yes.

  • When a package is found more than once, the warning fromfind.package(*, verbose=TRUE) lists all library locations.

  • POSIXt objects can now also be rounded or truncated to month oryear.

  • stopifnot() can be used alternatively via new argument exprswhich is nicer and useful when testing several expressions in onecall.

  • The environment variable R_MAX_VSIZE can now be used to specifythe maximal vector heap size. On macOS, unless specified by thisenvironment variable, the maximal vector heap size is set to themaximum of 16GB and the available physical memory. This is toavoid having the R process killed when macOS over-commits memory.

  • sum(x) and sum(x1,x2,..,x<N>) with many or long logical orinteger vectors no longer overflows (and returns NA with awarning), but returns double numbers in such cases.

  • Single components of "POSIXlt" objects can now be extracted andreplaced via [ indexing with 2 indices.

  • S3 method lookup now searches the namespace registry after thetop level environment of the calling environment.

  • Arithmetic sequences created by 1:n, seq_along, and the like nowuse compact internal representations via the ALTREP framework.Coercing integer and numeric vectors to character also now usesthe ALTREP framework to defer the actual conversion until firstuse.

  • Finalizers are now run with interrupts suspended.

  • merge() gains new option no.dups and by default suffixes thesecond of two duplicated column names, thanks to a proposal byScott Ritchie (and Gabe Becker).

  • scale.default(x, center, scale) now also allows center or scaleto be "numeric-alike", i.e., such that as.numeric(.) coerces themcorrectly. This also eliminates a wrong error message in suchcases.

  • parapply and parapplyLB gain an optional argument chunk.sizewhich allows to specify the granularity of scheduling.

  • Some as.data.frame() methods, notably the matrix one, are nowmore careful in not accepting duplicated or NA row names, and bydefault produce unique non-NA row names. This is based on newfunction .rowNamesDF(x, make.names = *) <- rNms where the logicalargument make.names allows to specify how invalid row namesrNms are handled. .rowNamesDF() is a "workaround" compatibledefault.

  • R has new serialization format (version 3) which supports customserialization of ALTREP framework objects. These objects canstill be serialized in format 2, but less efficiently.Serialization format 3 also records the current native encodingof unflagged strings and converts them when de-serialized in Rrunning under different native encoding. Format 3 comes with newserialization magic numbers (RDA3, RDB3, RDX3). Format 3 can beselected by version = 3 in save(), serialize() and saveRDS(), butformat 2 remains the default for all serialization and saving ofthe workspace. Serialized data in format 3 cannot be read byversions of R prior to version 3.5.0.

  • The "Date" and "date-time" classes "POSIXlt" and "POSIXct" nowhave a working length<- method, as wished in PR#17387.

  • optim(*, control = list(warn.1d.NelderMead = FALSE)) allows toturn off the warning when applying the default "Nelder-Mead"method to 1-dimensional problems.

  • matplot(.., panel.first = .) etc now work, as log becomesexplicit argument and ... is passed to plot() unevaluated, assuggested by Sebastian Meyer in PR#17386.

  • Interrupts can be suspended while evaluating an expression usingsuspendInterrupts. Subexpression can be evaluated withinterrupts enabled using allowInterrupts. These functions can beused to make sure cleanup handlers cannot be interrupted.

  • R 3.5.0 includes a framework that allows packages to providealternate representations of basic R objects (ALTREP). Theframework is still experimental and may undergo changes in futureR releases as more experience is gained. For now, documentationis provided in <URL:https://svn.r-project.org/R/branches/ALTREP/ALTREP.html>.

UTILITIES:

  • install.packages() for source packages now has the possibility toset a 'timeout' (elapsed-time limit). For serial installs thisuses the timeout argument of system2(): for parallel installs itrequires the timeout utility command from GNU coreutils.

  • It is now possible to set 'timeouts' (elapsed-time limits) formost parts of R CMD check via environment variables documentedin the 'R Internals' manual.

  • The 'BioC extra' repository which was dropped from Bioconductor3.6 and later has been removed from setRepositories(). Thischanges the mapping for 6-8 used by setRepositories(ind=).

  • R CMD check now also applies the settings of environmentvariables R_CHECK_SUGGESTS_ONLY and R_CHECK_DEPENDS_ONLY tothe re-building of vignettes.

  • R CMD check with environment variable R_CHECK_DEPENDS_ONLY setto a true value makes test-suite-management packages availableand (for the time being) works around a common omission ofrmarkdown from the VignetteBuilder field.

INSTALLATION on a UNIX-ALIKE:

  • Support for a system Java on macOS has been removed - install afairly recent Oracle Java (see 'R Installation andAdministration' SSC.3.2).

  • configure works harder to set additional flags in SAFE_FFLAGSonly where necessary, and to use flags which have little or noeffect on performance. In rare circumstances it may be necessary to override the settingof SAFE_FFLAGS.

  • C99 functions expm1, hypot, log1p and nearbyint are now required.

  • configure sets a -std flag for the C++ compiler for all supportedC++ standards (e.g., -std=gnu++11 for the C++11 compiler).Previously this was not done in a few cases where the defaultstandard passed the tests made (e.g. clang 6.0.0 for C++11).

C-LEVEL FACILITIES:

  • 'Writing R Extensions' documents macros MAYBE_REFERENCED,MAYBE_SHARED and MARK_NOT_MUTABLE that should be used by packageC code instead NAMED or SET_NAMED.

  • The object header layout has been changed to support merging theALTREP branch. This requires re-installing packages that usecompiled code.

  • 'Writing R Extensions' now documents the R_tryCatch,R_tryCatchError, and R_UnwindProtect functions.

  • NAMEDMAX has been raised to 3 to allow protection of intermediateresults from (usually ill-advised) assignments in arguments toBUILTIN functions. Package C code using SET_NAMED may need to berevised.

DEPRECATED AND DEFUNCT:

  • Sys.timezone(location = FALSE) is defunct, and is ignored (with awarning).

  • methods:::bind_activation() is defunct now; it typically has beenunneeded for years.The undocumented 'hidden' objects .H.cbind and .H.rbindin package base are deprecated (in favour of cbind and rbind).

  • The declaration of pythag() in Rmath.h has been removed - theentry point has not been provided since R 2.14.0.

BUG FIXES:

  • printCoefmat() now also works without column names.

  • The S4 methods on Ops() for the "structure" class no longer causeinfinite recursion when the structure is not an S4 object.

  • nlm(f, ..) for the case where f() has a "hessian" attribute nowcomputes LL' = H + uI correctly. (PR#17249).

  • An S4 method that "rematches" to its generic and overrides thedefault value of a generic formal argument to NULL no longerdrops the argument from its formals.

  • Rscript can now accept more than one argument given on the #!line of a script. Previously, one could only pass a singleargument on the #! line in Linux.

  • Connections are now written correctly with encoding "UTF-16LE".(PR#16737).

  • Evaluation of ..0 now signals an error. When ..1 is used and ...is empty, the error message is more appropriate.

  • (Windows mainly.) Unicode code points which require surrogatepairs in UTF-16 are now handled. All systems should properlyhandle surrogate pairs, even those systems that do not need tomake use of them. (PR#16098)

  • stopifnot(e, e2, ...) now evaluates the expressions sequentiallyand in case of an error or warning shows the relevant expressioninstead of the full stopifnot(..) call.

  • path.expand() on Windows now accepts paths specified asUTF-8-encoded character strings even if not representable in thecurrent locale. (PR#17120)

  • line(x, y) now correctly computes the medians of the left andright group's x-values and in all cases reproduces straightlines.

  • Extending S4 classes with slots corresponding to specialattributes like dim and dimnames now works.

  • Fix for legend() when fill has multiple values the first of whichis NA (all colours used to default to par(fg)). (PR#17288)

  • installed.packages() did not remove the cached value for alibrary tree that had been emptied (but would not use the oldvalue, just waste time checking it).

  • The documentation for installed.packages(noCache = TRUE)incorrectly claimed it would refresh the cache.

  • aggregate(<data.frame>) no longer uses spurious names in somecases. (PR#17283)

  • object.size() now also works for long vectors.

  • packageDescription() tries harder to solve re-encoding issues,notably seen in some Windows locales. This fixes the citation()issue in PR#17291.

  • poly(<matrix>, 3) now works, thanks to prompting by MarcSchwartz.

  • readLines() no longer segfaults on very large files with embedded'\0' (aka 'nul') characters. (PR#17311)

  • ns() (package splines) now also works for a single observation.interpSpline() gives a more friendly error message when thenumber of points is less than four.

  • dist(x, method = "canberra") now uses the correct definition; theresult may only differ when x contains values of differing signs,e.g. not for 0-1 data.

  • methods:::cbind() and methods:::rbind() avoid deep recursion,thanks to Suharto Anggono via PR#17300.

  • Arithmetic with zero-column data frames now works moreconsistently; issue raised by Bill Dunlap. Arithmetic with data frames gives a data frame for ^ (whichpreviously gave a numeric matrix).

  • pretty(x, n) for large n or large diff(range(x)) now works better(though it was never meant for large n); internally it uses thesame rounding fuzz (1e-10) as seq.default() - as it did up to2010-02-03 when both were 1e-7.

  • Internal C-level R_check_class_and_super() and henceR_check_class_etc() now also consider non-direct super classesand hence return a match in more cases. This e.g., fixesbehaviour of derived classes in package Matrix.

  • Reverted unintended change in behavior of return calls in on.exitexpressions introduced by stack unwinding changes in R 3.3.0.

  • Attributes on symbols are now detected and prevented; attempt toadd an attribute to a symbol results in an error.

  • fisher.test(*, workspace = <n>) now may also increase theinternal stack size which allows larger problem to be solved,fixing PR#1662.

  • The methods package no longer directly copies slots (attributes)into a prototype that is of an "abnormal" (reference) type, likea symbol.

  • The methods package no longer attempts to call length<-() on NULL(during the bootstrap process).

  • The methods package correctly shows methods when there aremultiple methods with the same signature for the same generic(still not fully supported, but at least the user can see them).

  • sys.on.exit() is now always evaluated in the right frame. (FromLionel Henry.)

  • seq.POSIXt(*, by = "<n> DSTdays") now should work correctly inall cases and is faster. (PR#17342)

  • .C() when returning a logical vector now always maps values otherthan FALSE and NA to TRUE (as documented).

  • Subassignment with zero length vectors now coerces as documented(PR#17344).Further, x <- numeric(); x[1] <- character() now signals an error'replacement has length zero' (or a translation of that) insteadof doing nothing.

  • (Package parallel.) mclapply(), pvec() and mcparallel() (whenmccollect() is used to collect results) no longer leave zombieprocesses behind.

  • R CMD INSTALL <pkg> now produces the intended error message when,e.g., the LazyData field is invalid.

  • as.matrix(dd) now works when the data frame dd contains a columnwhich is a data frame or matrix, including a 0-column matrix/d.f..

  • mclapply(X, mc.cores) now follows its documentation and callslapply() in case mc.cores = 1 also in the case mc.preschedule isfalse. (PR#17373)

  • aggregate(<data.frame>, drop=FALSE) no longer calls the functionon <empty> parts but sets corresponding results to NA. (Thanksto Suharto Anggono's patches in PR#17280).

  • The duplicated() method for data frames is now based on the listmethod (instead of string coercion). Consequently unique() isbetter distinguishing data frame rows, fixing PR#17369 andPR#17381. The methods for matrices and arrays are changedaccordingly.

  • Calling names() on an S4 object derived from "environment"behaves (by default) like calling names() on an ordinaryenvironment.

  • read.table() with a non-default separator now supports quotesfollowing a non-whitespace character, matching the behavior ofscan().

  • parLapplyLB and parSapplyLB have been fixed to do load balancing(dynamic scheduling). This also means that results ofcomputations depending on random number generators will nowreally be non-reproducible, as documented.

  • Indexing a list using dollar and empty string (l$"") returnsNULL.

  • Using \usage{ data(<name>, package="<pkg>") } no longer producesR CMD check warnings.

  • match.arg() more carefully chooses the environment forconstructing default choices, fixing PR#17401 as proposed byDuncan Murdoch.

  • Deparsing of consecutive ! calls is now consistent with deparsingunary - and + calls and creates code that can be reparsedexactly; thanks to a patch by Lionel Henry in PR#17397. (As aside effect, this uses fewer parentheses in some other deparsinginvolving ! calls.)

Source: readme.md, updated 2018-05-13