R-1.3.0 is released

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Fri Jun 22 14:17:25 CEST 2001

I've rolled up R-1.3.0.tgz about an hour ago. This is a major upgrade,
with some structural changes and major new features, especially in the
areas of connections, dates, and the ctest package.

As a new item, we also roll up (in a separate file) a set of
recommended packages that are known to work with R-1.3.0. Binary
distributions are expected to include these packages. 

Please note that the former "survival5" package is now named
"survival". If you install over an existing installation, make sure to
"R CMD REMOVE survival5"

You can get it from the developer site




or wait for them to be mirrored at a CRAN site near you within a day
or two. Binaries for various platforms will appear in due course.

There are also versions split for floppies.

(Are anyone actually using the split-source versions and not capable
of using the "split" command themselves? They do take up a lot of
space, and I had to remove split versions of earlier releases to make
room for the new one.) 

        For the R Core Team,

        Peter D.

Here's the relevant part of the NEWS file:



    o	Changes to connections:

	-  New function url() to read from URLs.  file() will also
	   accept URL specifications, as will all the functions which
	   use it.

	-  file connections can now be opened for both reading and writing.

	-  Anonymous file connections (via file()) are now supported.

	-  New function gzfile() to read from / write to compressed files.

	-  New function fifo() for connections to / from fifos (on Unix).

	-  Text input from file, pipe, fifo, gzfile and url connections
	   can be read with a user-specified encoding.

	-  New functions readChar() and writeChar() to read character
	   strings with known lengths and no terminators, and to write
	   user-specified lengths from strings.

	-  sink() now has a stack of output connections, following S4.

	-  sink() can also be applied to the message stream, to capture
	   error messages to a connection.  Use carefully!

	-  seek() has a new `origin' argument.

	-  New function truncate() to truncate a connection open for
	   writing at the current position.

	-  Socket connections via function socketConnection().

	-  The `blocking' argument for file, fifo  and socket connections
	   is now operational.

    o	Changes to date/time classes and functions:

	-  Date/time objects now all inherit from class "POSIXt".

	-  New function difftime() and corresponding class for date/time
	   differences, and a round() method.

	-  Subtraction and logical comparison of objects from different
	   date/time classes is now supported.	NB: the format for the
	   difference of two objects of the same date/time class has
	   changed, but only for objects generated by this version, not
	   those generated by earlier ones.

	-  Methods for cut(), seq(), round() and trunc() for date/time

	-  Convenience generic functions weekdays(), months(), quarters()
	   and julian() with methods for "POSIXt" objects.

    o	Coercion from real to integer now gives NA for out-of-range
	values, rather than the most extreme integer of the same sign.

    o	The Ansari-Bradley, Bartlett, Fligner-Killeen, Friedman,
	Kruskal-Wallis, Mood, Quade, t, and Wilcoxon tests as well as
	var.test() in package ctest now have formula interfaces.

    o	Matrix multiplication functions %*% and crossprod() now use a
	level-3 BLAS routine dgemm.  When R is linked with the ATLAS
	or other enhanced BLAS libraries this can be substantially
	faster than the previous code.

    o	New functions La.eigen() and La.svd() for eigenvector and
	singular value decompositions, based on LAPACK.	 These are
	preferred to eigen() and svd() for new projects and can make
	use of enhanced BLAS routines such as ATLAS.  They are
	used in cancor(), cmdscale(), factanal() and princomp()
	and this may lead to sign reversals in some of the output of
	those functions.

    o	Provided the Fortran compiler can handle COMPLEX*16, the
	following routines now handle complex arguments, based on
	LAPACK code.

	qr, qr.coef, qr.solve, qr.qy, qr.qty, solve.default, svd, La.svd.

    o	aperm() uses strides in the internal C code and so is
	substantially faster (by Jonathan Rougier).

    o	The four bessel[IJKY](x,nu) functions are now defined for nu < 0.

    o	[dpqr]nbinom also accept an alternative parametrization via the
	mean and the dispersion parameter (thanks to Ben Bolker).

    o	Generalised "birthday paradox" functions [pq]birthday.

    o	boxplot() and bxp() have a new argument `at'

    o	New function capabilities() to report optional capabilities
	such as jpeg, png, tcltk, gzfile and url support.

    o	New function checkFF() for checking foreign function calls.

    o	New function col2rgb() for color conversion of names, hex, or

    o	coplot() has a new argument `bar.bg' (color of conditioning bars),
	gives nicer plots when the conditioners are factors, and allows
	factors for x and y (treated almost as if unclass()ed) using new
	argument `axlabels'.  [original ideas by Thomas Baummann]

    o	`hessian' argument added to deriv() and its methods.  A new function
	deriv3() provides identical capabilities to deriv() except that
	`hessian' is TRUE by default.
	deriv(*, *, func = TRUE) for convenience.

    o	New dev.interactive() function, useful for setting defaults for
	par(ask=*) in multifigure plots.

    o	dist() in package mva can now handle missing values, and
	zeroes in the Canberra distance.

    o	The default method for download.file() (and functions which use
	it such as update.packages()) is now "internal", and uses code
	compiled into R.

    o	eigen() tests for symmetry with a numerical tolerance.

    o	New function formatDL() for formatting description lists.

    o	New argument `nsmall' to format.default(), for S-PLUS
	compatibility (and used in various packages).

    o	?/help() now advertises help.search() if it fails to find a topic.

    o	image() is now a generic function.

    o	New function integrate() with S-compatible call.

    o	New function is.unsorted() the C version of which also speeds up
	.Internal(sort()) for sorted input.

    o	is.loaded() accepts an argument PACKAGE to search within
	a specific DLL/shared library.

    o	Exact p-values are available for the two-sided two-sample
	Kolmogorov-Smirnov test.

    o	lm() now passes `...' to the low level functions for regression

    o	Generic functions logLik() and AIC() moved from packages nls
	and nlme to base, as well as their *.lm methods.

    o	New components in .Machine give the sizes of long, long long and
	long double C types (or 0 if they do not exist).

    o	merge.data.frame() has new arguments, `all[.xy]' and `suffixes',
	for S compatibility.

    o	model.frame() now calls na.action with the terms attribute set
	on the data frame (needed to distiguish the response, for

    o	New generic functions naresid(), napredict() and naprint()
	(formerly in packages survival5 and MASS, also used in rpart).
	Also na.exclude(), a variant on na.omit() that is handled
	differently by naresid() and napredict().

	The default, lm and glm methods for fitted, residuals, predict
	and weights make use of these.

    o	New function oneway.test() in package ctest for testing for
	equal means in a one-way layout, assuming normality but not
	necessarily equal variances.

    o	options(error) accepts a function, as an alternative to
	an expression.	(The Blue Book only allows a function; current
	S-PLUS a function or an expression.)

    o	outer() has a speed-up in the default case of a matrix outer
	product (by Jonathan Rougier).

    o	package.skeleton() helps with creating new packages.

    o	New pdf() graphics driver.

    o	persp() is now a generic function.

    o	plot.acf() makes better use of white space for `nser > 2', has
	new optional arguments and uses a much better layout when more
	than one page of plots is produced.

    o	plot.mts() has a new argument `panel' providing the same
	functionality as in coplot().

    o	postscript() allows user-specified encoding, with encoding files
	supplied for Windows, Mac, Unicode and various others, and with
	an appropriate platform-specific default.

    o	print.htest() can now handle test names that are longer than
	one line.

    o	prompt() improved for data sets, particularly non-dataframes.

    o	qqnorm() is now a generic function.

    o	read.fwf() has a new argument `n' for specifying the number of
	records (lines) read in.

    o	read.table() now uses a single pass through the dataset.

    o	rep() now handles lists (as generic vectors).

    o	scan() has a new argument `multi.line' for S compatibility,
	but the default remains the opposite of S (records can cross
	line boundaries by default).

    o	sort(x) now produces an error when x is not atomic instead of
	just returning x.

    o	split() now allows splitting on a list of factors in which case
	their interaction defines the grouping.

    o	stl() has more optional arguments for fine tuning, a summary()
	and an improved plot() method.

    o	New function strwrap() for formatting character strings into

    o	New replacement functions substr<-() and substring<-().

    o	Dataset swiss now has row names.

    o	Arguments `pkg' and `lib' of system.file() have been renamed to
	`package' and `lib.loc', respectively, to be consistent with
	related functions.  The old names are deprecated.  Argument
	`package' must now specify a single package.

    o	The Wilcoxon and Ansari-Bradley tests now return point
	estimators of the location or scale parameter of interest along
	with confidence intervals for these.

    o	New function write.dcf() for writing data in Debian Control File
	format.	 parse.dcf() has been replaced by (much faster)	internal

    o	Contingency tables created by xtabs() or table() now have a
	summary() method.

    o	Functions httpclient(), read.table.url(), scan.url() and
	source.url() are now deprecated, and hence method="socket' in
	download.file() is.  Use url connections instead: in
	particular URLs can be specified for read.table(), scan() and

    o	Formerly deprecated function getenv() is now defunct.

    o	Support for package-specific demo scripts (R code).  demo() now
	has new arguments to specify the location of demos and to allow
	for running base demos as part of `make check'.

    o	If not explicitly given a library tree to install to or remove
	from, respectively, R CMD INSTALL and R CMD REMOVE now operate
	on the first directory given in `R_LIBS' if this is set and
	non-null, and the default library otherwise.

    o	R CMD INSTALL and package.description() fix some common problems
	of DESCRIPTION files (blank lines, ...)

    o	The INSTALL command for package installation allows a `--save'
	option.	 Using it causes a binary image of the package contents
	to be created at install time and loaded when the package is
	attached.  This saves time, but also uses a more standard way
	of source-ing the package.  Packages that do more than just
	assign object definitions may need to install with `--save'.
	Putting a file `INSTALL.R' in the package directory makes
	`--save' the default behavior.  If that file is not empty, its
	contents should be R commands executed at the end of creating
	the image.

	There is also a new command line option `--configure-vals' for
	passing variables to the configure script of a package.

    o	R CMD check now also checks the keyword entries against the list
	of standard keywords, for code/documentation mismatches (this
	can be turned off by the command line option `--no-codoc'), and
	for sufficient file permissions (Unix only).  There is a new check
	for the correct usage of library.dynam.

	It also has a new command line option `--use-gct' to use
	`gctorture(TRUE)' when running R code.

    o	R CMD Rd2dvi has better support for producing reference manuals
	for packages and package bundles.

    o	configure now tests for the versions of jpeg (>= 6b), libpng (>=
	1.0.5) and zlib (>= 1.1.3).  It no longer checks for the
	CXML/DXML BLAS libraries on Alphas.

    o	Perl scripts now use Cwd::cwd() in place of Cwd::getcwd(), as
	cwd() can be much faster.

    o	R::Dcf.pm can now also handle files with more than one record
	and checks (a little bit) for continuation lines without leading

    o	New manual `R Installation and Administration' with fuller
	details on the installation process: file `INSTALL' is now a
	brief introduction referencing that manual.

    o	New keyword `internal' which can be used to hide objects that
	are not part of the API from indices like the alphabetical lists
	in the HTML help system.

    o   Under Unix, shlib modules for add-on packages are now linked
	against R as a shared library (`libR') if this exists.  (This
	allows for improved embedding of R into other applications.)

    o   New mechanism for explicitly registering native routines in a
	DLL/shared library accessible via .C(), .Call(), .Fortran() and
	.External().  This is potentially more robust than the existing
	dynamic lookup, since it checks the number of arguments, type of
	the routine.

    o	New mechanism allowing registration of C routines for converting
	R objects to C pointers in .C() calls.  Useful for references to
	data in other languages and libraries (e.g. C and hdf5).

    o	The internal ftp/http access code maintains the event loop, so
	you can download whilst running tcltk or Rggobi, say.  It can
	be hooked into package XML too.


    o	boxplot.stats() now returns the correct `n' component in the case of
	NAs. This also affects `conf', the notch length (PR#967).

    o	the "coef = 0" fix (PR#917) to boxplot.stats() broke
	boxplot.stats(do.out = FALSE).

    o	curve(* , add = FALSE) now works correctly again if used when
	par("xlog") is true.

    o	Printing a dataframe with a column called "row.names" or
	"check.names" omitted the column.

    o	data.frame(a=1, b=2)[1, -(1:2)]	 now works, giving an empty
	data frame.  as.matrix(df), deparse(), dput() and str() now work
	for empty data frames.

    o	dbeta() could return zero erroneously on some platforms where
	roundoff makes e.g. 1.3 - 1 > (1.3 + 1) - 2 (Solaris and HP-UX
	were affected). (PR#970)

    o	pointer protection in deriv() (PR#953)

    o   expand.data.frame() didn't interpret its subset= argument in
        the data frame. (PR#979 et al., fix from Greg Warnes)

    o	format() on character arrays was losing the dimensions.

    o	hist.default() was ignoring its `probability' argument for
	equi-spaced breaks.

    o	Occasionally insane results of is.nan(NULL), is.na(NULL) (PR#952)

    o	ks.test() in package ctest now had the one-sided alternatives in
	the one-sample case reversed (PR#934).

    o	ls.str() and lsf.str() now work better with pos > 1, and are
	correctly documented (PR#899).

    o	plot(1:2, xaxs = "i") now gives both "1.0" and "2.0" x-axis labels.

    o	promax() was not using its `m' argument (m=4 was always used).

    o	qr.X() was ignoring pivoting (which happens only in
	rank-deficient cases).

    o   sign of Pearson residuals was wrong for reciprocal link (PR#862)

    o	The algorithm for determining starting estimates in the SSfpl
	self-starting model in the nls package was changed following a
	suggestion by Phillipe Grosjean <phgrosje at ulb.ac.be>

    o	svd(x)$v was not a matrix when x had only 1 row (PR#963).

    o	symnum(x) behaves more reasonably for zero length or non-numeric x.

    o	The implementation of sys.function() did not work when the
	current function was already a function (e.g., a closure).

    o   tapply() had "..." argument after simplify=, which made it
	incompatible with S when passing additional unnamed arguments to FUN.

    o   use formula environments in xy.coords() (PR#932)

    o	Unused entry points in `src/appl/fortran.c' and `Fortran.h'
	have been removed.

    o	Unused directory `src/f2clib' and header `src/include/R_ext/f2c.h'
	have been removed.

    o	The documentation and parts of the parse/deparse mechanism
	indicated that there was an operator `%'. Corrected (PR#925).

    o	Fixed some cases where the deparser gave code that threw a
	syntax error when parsed.

    o	Using a pushback with more than two lines at a time could crash.

    o	Eliminate or warn on use of .Last.value in help examples, since
	.Last.value is only set from top-level expressions (and was
	incorrectly documented).

    o	asInteger was ignoring integer overflow (PR#929 and others).

    o	approxfun(*, ties = <fun>) could return garbage when there were ties;
	ties = "ordered" was incorrect--also for approx()-- when there was
	a tie at the very right.

   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

More information about the R-announce mailing list