I've rolled up R-1.6.0.tgz a short while ago. This is a major upgrade,
with several new features.
A few of the changes generate compatibility issues. You may wish to
consult http://developer.r-project.org/160update.txt.
We no longer ship the set of recommended packages separately, but
bundle them up with the main distribution. Thus there is now only a
single file to fetch and (barring special platform issues) you should
be able to get going by unpacking the sources and entering
./configure
make
make install
You can get it from the developer site
ftp://cvs.r-project.org/pub/CRAN/src/base/R-1.6.0.tgz
or
http://cvs.r-project.org/pub/CRAN/src/base/R-1.6.0.tgz
or wait for it to be mirrored at a CRAN site near you. Binaries for
various platforms will appear in due course. (Notice that the machine
which hosts cvs.r-project.org had a hardware problem last week, so the
service may be slightly unreliable. Unfortunately, this also affects
some CRAN mirrors since they are redirected through the same machine.)
There is also a version split for floppies.
For the R Core Team,
Peter D.
Here's the relevant part of the NEWS file:
CHANGES IN R VERSION 1.6.0
USER-VISIBLE CHANGES
o The default colour palette now has "grey" instead of
"white"
in location 8. See palette().
o grid(nx) behaves differently (but the same as in R versions <= 0.64).
NEW FEATURES
o New operator :: in the grammar, for name spaces.
o New faster rowsum(), also works on data frames.
o grep(), (g)sub() and regexpr() have a new argument `perl'
which if TRUE uses Perl-style regexps from PCRE (if installed).
New capabilities option "PCRE" to say if PCRE is available.
o Preparations for name space support:
- Functions in the base package are now defined in a name space.
As a temporary measure, you can disable this by defining the
environment variable R_NO_BASE_NAMESPACE.
- UseMethod dispatching now searches for methods in the
environment of the caller of the generic function rather
than the environment where the generic is defined.
o The objects created in the methods package to represent
classes, generic functions, method definitions, and
inheritance relations now themselves belong to true classes. In
particular, the "classRepresentation" objects follow the description
in "Programming with Data" (section 7.6).
o Other additions and changes to the methods package:
- The function setOldClass() has been added, following the
description on page 450 of "Programming with Data". Use it
if old-style classes are to be supplied in signatures for
setMethod, particularly if the old-style classes have
inheritance. Many of the old-style classes in the base
package should be pre-specified; try getClass("mlm"), e.g.
- The setGeneric() function applies some heuristics to warn
about possibly erroneous generic function definitions.
(Before, obscure bugs could result.)
- The function promptMethods() has been revised to work better
and to provide aliases for individual methods.
- The behavior of the as() function has been generalized, in
particular with a strict= argument, the general goal being
to let simple extensions of classes pass through in method
dispatch and related computations without altering the
objects. More to make method behavior more "natural" than
for direct use.
- Some inconsistencies following detach("package:methods")
have been removed, so it _should_ be possible to
detach/re-attach the methods package.
o New methods ([[, print, str) and extended plot() method
(incl. logical `horiz') for "dendrogram" class.
o sprintf() now checks the agreement between formats and object
types, and handles special values (NA, Inf, ...) correctly.
o chol() now uses a tolerance for non-positive-definiteness and
so should give more consistent results across platforms.
o New function agrep() for approximate (fuzzy) string matching.
o help.search() can now use both approximate (fuzzy) and regular
expression matching. By default, if the pattern to be matched
consists of only alphanumeric characters, whitespace or a dash,
approximate matching is used.
o axis() has three new optional arguments `col', `lty', and
`lwd'
all for drawing the axis line and tick marks.
o Function vcov() (formerly in MASS), a generic function to
return the variance-covariance matrix of the parameter
estimates of a fitted model.
o duplicated() and unique() have methods for matrices and arrays
(based on ideas from Jens Oehlschl?gel).
o Internally memory sizes and counts of cons cells are now stored
in unsigned longs. This allows memory limits to be set and
objects created in the range 2-4Gb on 32-bit platforms, and
allows 64-bit platforms to use much larger amounts of memory.
o Command-line flags to set memory can now use the suffix `G'
for gigabytes. The setting of maximum vsize is now only
limited by the platform's address space.
o All warning and error messages are truncated to a length set
by options(warning.length=), defaulting to 1000. (Previously
most (but not quite all) were truncated at 8192 characters.)
o [dpqr]gamma() check for shape parameter > 0.
o as.POSIX[cl]t can now convert logical NAs.
o All installed packages (even those shipped with R) are
given a `Built' field in the DESCRIPTION file.
o as.data.frame() now coerces logical matrices into logical
columns (rather than factors).
o [[<-.data.frame no longer coerces character replacement values
to factor. This is consistent with using $ to replace and
with S4.
o library() attempts to detect improperly installed packages, so
as from this version an installed package must have a
DESCRIPTION file and that file must have been stamped with a
`Built:' line (which was introduced in 1.2.0). Under
Unix-alikes, the platform is checked against that used for
installation.
o print.factor() has new arguments `max.levels' (with a smart default)
and `width'. print.ordered() is no longer needed.
o RNGkind() has an additional option for normal random generators:
"Inversion".
o data.frame() recycles factors and "AsIs" objects as well as
atomic vectors.
o predict.lm() warns if `newdata' is supplied and the fit was
rank-deficient, as this can be misleading.
o rect() accepts additional graphics parameters through a ...
argument (in the same way as polygon).
o strwidth/strheight() now coerce their first argument in exactly
the same way text() does, so a wider range of inputs is allowed.
o prompt()'s default and data.frame methods have a new 3rd argument
`name' allowing them to used more easily in scripts and loops.
o rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M],
particularly in {0:255}, efficiently and non-error-prone.
o summaryRprof() provides the functionality of R CMD Rprof in R
code, though more slowly.
o stop() accepts multiple arguments (which are concatenated)
just as warning() does.
o scan() now throws an error with incorrect logical input (which
was previously taken as FALSE).
o pdf() now uses PDF not R code for clipping, which ensures that
partially visible text strings are (partially) shown.
o Each R session uses a per-session temporary directory which
is removed at normal termination. The directory name is given
by the tempdir() function, and filenames returned by
tempfile() will be within that directory.
o help.start() on Unix now uses a .R subdirectory of the
per-session temporary directory and not ~/.R. A side effect
is that ~/.R is now never deleted by R.
This now uses the remote control mechanism only if the X
display is local to the R process (as otherwise it might use a
browser running on an arbitrary machine).
o *Very* experimental browseEnv() for browsing objects in an
environment.
o cbind/rbind() used to ignore all zero-length vectors, an
undocumented quirk for S-compatibility. This caused problems
when combining zero-extent matrices and zero-length vectors, and
now zero-length vectors are ignored unless the result would
have zero rows/columns.
o read.table(stdin()) will now work.
o plot.spec(x) now also works for other x than AR and Pgram results.
o New functions La.chol() and La.chol2inv() for Cholesky
decomposition and inverse of positive definite matrices using
Lapack.
o Changes to the tcltk package
- on Unix systems, the Tcl event loop has been integrated with
R's own (so that tkwait.variable() no longer halts updates of
plot windows).
- also on Unix, stubs have been created to divert R's input
and output routines to go via Tcl commands. (Nothing
uses this at present, but packages might be developed to
take advantage of it.)
- return value from Tcl commands is no longer invisible. A new
print method, print.tclObj(), has been introduced.
- Tcl variables created by tclVar() are now explicitly put into
Tcl's global namespace, removing potential scoping problems.
- The tcltk dynamic library now loads with local=FALSE since
the default had trouble when loading Tcl extensions
(e.g. Tix)
- The tkpager() function had not been updated for the return
value change from 1.5.0
o The bmp(), jpeg() and png() devices can produce multiple
bitmap files, one for each page. The default filenames have been
changed to include a sequence number.
o New function axTicks() returning tick mark locations like axis().
o grid() has a more sensible default behavior. Tick axis alignment
only happens when no numbers of grid cells are specified. New
arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid.
o installed.packages() has a new argument `priority'.
o termplot() uses factor levels rather than 1,2,3... for x-axis.
o Workaround for optimization bugs on gcc 3.1/2 on 32-bit Solaris.
o The trace() function has been robustified and a new function
tracingState() added to turn tracing temporarily on and off.
o New cophenetic() in "mva" as utility for hierarchical
clustering.
o p.adjust() has two new methods, 'Hommel' and 'FDR',
contributed
by Gordon Smyth <smyth at wehi.edu.au>.
o stars() now has add and plot arguments.
DEPRECATED & DEFUNCT
o The assignment operator `_' is deprecated: a warning is given
once per R session.
o machine() is deprecated in favour of .Platform$OS.type.
Machine() and Platform() are deprecated in favour of .Machine
and .Platform.
o arima0.diag() (package ts) is defunct.
o piechart() is defunct.
o print.ordered() has been removed, so print.factor() is used.
o The global internal variables .Dyn.libs and .lib.loc are
removed in favor of the internal functions .dynLibs() and
.libPaths().
o restart() is deprecated in preparation for proper exception
handling. Use try(), as has long been recommended.
DOCUMENTATION CHANGES
o New demo(persp) containing some of the former example(persp) ones
and more.
C-LEVEL FACILITIES
o Rversion.h is no longer automatically included by R.h.
Include it explicitly if you need it.
o New entry point R_tmpnam in Utils.h.
o The Unix event loop interface has been changed to facilitate
integration with other loops. R_checkActivity and
R_runHandlers should eventually replace getSelectedHandler.
INSTALLATION CHANGES
o Perl 5.005 or newer is now required.
o R CMD INSTALL is now guaranteed to sort the R source files in
ASCII order.
UTILITIES
o R CMD check now tests for mis-use on an installed or binary
package, and sets 'T' and 'F' to 'NULL' when running
the
examples.
o New function SweaveSyntConv() converts between Sweave file
syntaxes. RweaveLatex() now gets its prompt from options() and
uses the text width as linebreak cutoff for deparsing input
statements.
BUG FIXES
o axis() was not respecting par("mgp")[3] by default.
(PR#916)
o tcltk back-compatibility fix for tcl8.0
o hist.POSIXct(*, breaks) now works for `breaks = #{breaks}' and
when `x' has NAs; the latter applies to cut.POSIXct() as well.
o The internal download.file() methods were setting the proxy
port to 0 unless it was specified.
o poly() did not work for >=3 column matrices.
o cut.default() was not handling infinite values with infinite
breaks. (PR#1694)
o ks.test() could fail due to integer overflow if n.x and n.y
were both large.
o all.equal(3., 3:3) wasn't TRUE when the methods package was
present.
o read.table() could remap non-syntactic names to duplicates,
and did not check for duplicated names.
o ls.str(envir = environment(F)) now works (when F is a function).
o pie() now has a `border' (and 'lty') argument which allows
empty
slice borders and makes pie() useable for hundreds of slices.
o all.equal.character() now works correctly also when NAs don't
match (PR#1767).
o all.equal.numeric() now gives character {instead of list} when
lengths don't match.
o read.dcf() had a memory leak.
o Setting "tcl = a" in a highlevel graphic function worked almost
as if par(tcl = a) was called (i.e. was persistent). Further,
after par(tcl= <.>), highlevel graphic setting of tcl didn't work
anymore. "tck" has now S's default of -0.01 (when tcl=NA).
o data() was not checking if ./data was a directory before
warning.
o Assignment beyond the end of character strings was filling
with "", whereas changing the length extended with NA_STRING.
Now NA_STRING is used for both.
o boxplot()s with logarithmic scale in "width-direction" now have
proper widths, i.e. typically constant.
o Using GNU readline in asynchronous event callbacks (e.g. TclTk
or Gtk) works correctly, i.e. doesn't cause readline to abort
the process.
o Using Q to exit a browser invoked at the top-level could lead to
the browser being invoked on all future top-level loops (PR#1721)
o step(fit, direction="both") now uses both directions even if
no scope is supplied.
o strwidth(), strheight() now give 0 on NA strings (as they
are no longer plotted). (PR#1739)
o mtext(), persp(), plot.hclust() and title() no longer plot NA
character strings.
o pdf() has been protected against the user who specified
non-existent fonts. (PR#1748)
o dlnorm() returns zero for negative x argument. (PR#1781)
o Printing 0 in octmode gave "" not "0". (PR#1759)
o anova.glm() was ignoring a `dispersion' argument if given
multiple objects. (PR#1807)
o model.matrix() with a `rhs ~ .' formula included columns with
duplicated names in the data frame, which caused subsequent
confusion (e.g. in prediction from the object).
model.matrix() was sometimes incorrectly determining the first
factor in a formula without an intercept.
o termplot() now needs data= argument more rarely. (PR#828)
o abline() on log scale doesn't draw -ve points. (PR#1243)
o The Java search engine now works within Mozilla 1.0 and
Netscape 6.2.x / 7.0pr1.
o unsplit() failed if f was a list of factors. (PR#1843)
o The methods package generic version of primitives is now
"sealed"
and cannot be redefined (it was always a bad idea to do so).
o quantile() gave -Inf not NaN in some examples. (Related to PR#1852)
o read.table() read too far in checking the file structure if
0 < nrows < 5 and more rows existed on the file. (PR1809)
o loess() was not checking for too small a span (so no points
were included in the smoothing window).
o match() was assuming that there was only one possible bit
pattern for a numeric NA, so some matches failed on Solaris
under some compiler options.
o identical() no longer thinks NaN and as.double(NA) are identical.
o pipe() can open in a binary mode even on Linux (where popen
cannot).
o zero-column matrices were not being printed at all, not even
the row names.
o polygon()'s `border' argument was incorrectly documented: in
particular `border = 0' plots in background colour.
o delete.response() was losing the attribute set for safe
prediction. (PR#1840)
o poly() was checking the degree against the number of points
even when predicting.
o Comparison of a data frame and list failed due to typo. (PR#1889)
o dput() and dump() attempt to check if writing succeeded. (PR#1884)
o rep(1:2, 0) and hence array(1:2, 0) fail no longer.
o apply(matrix("", 3, 0), 2, length) now works.
o order(na.last = NA, decreasing = TRUE) now sorts in decreasing
order. (PR#1906)
o order(na.last=NA) failed if all args were of length 1 or all
were NA. (PR#1913, 1981)
o source() would crash if the `keep.source = TRUE' and the input
contained a function with a line longer than 1024 chars. (PR#1900)
The limits on nesting of functions and on total function size
when the source is kept are now enforced. As (incorrectly)
the source was always kept, this meant functions longer than
128Kb could crash R, even in packages.
o lqs() and cov.rob() check that the quantile argument does not
exceed n-1.
o grid() now also works with log coordinates active.
o plot.table(tab, xlab="X", ylab="Y") now works as
expected.
o plot.formula(ask=FALSE) now works. (PR#1923)
o as.list(<logical>) now works properly. (PR#1926).
o The residual SSq printed from an aov() fit with weights is
now the weighted SSq. (PR#1930)
o aov() could still fail on multistrata models with very long
Error formulae.
o try() could fail in BATCH use due to use of fflush(stdin).
Only seen on Solaris. (PR#1934)
o title(main=list("main")) printed garbage, as did similar calls
using quote() instead of expression() for plotmath. (PR#1939)
o deparse() dropped parentheses in some case where they were
needed. (PR#1119, 1737, 1928, at least)
o pdf(onefile = FALSE) never incremented the file number beyond
two.
o On Unix, protect against broken pipes where popen calls succeed
even though the command does not exist (and the glibc manual
says it should return NULL). (PR#1959)
o data.frame() was allowing explicit row.names with missing
values, but row names are required to be unique.
o as.character(expression) was silently truncating to 60
characters: the help page claimed 500 which is now true.
o as.hclust(x) now also works (as identity) for "hclust" objects.
o NextMethod didn't work right in Ops.
o dotchart() now obeys `xlim ='.
o t(x) behaves when x is a (multivariate) time series. (PR#1998)
o parse(text=x) no longer parses from stdin if length(x) is zero
o binom.test() miscalculated p-value in some extreme cases
o get("print.ts")(1) would segfault. It's now just an error.
o cbind(NULL) {and similar} gave an error instead of NULL.
o the complex version of solve(a,b) now also works if b is a
vector
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-announce mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-announce-request at
stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._