R-1.7.0 is released

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Wed Apr 16 15:42:04 CEST 2003


I've rolled up R-1.7.0.tgz a short while ago. This is a new version
with major changes in the methods/class area and with namespaces used
much more widely than before. Several routines now use the faster and
more modern LAPACK library. Also notice that the underscore is now
strongly deprecated as an assignment operator.

There are also a bunch of new functions and an assortment of bugs have
been fixed.

You can get it from

http://cran.us.r-project.org/src/base/R-1.7.0.tgz

or wait for it to be mirrored at a CRAN site nearer to you. Binaries
for various platforms will appear in due course.
 
There is also a version split for floppies.

These are the md5sums for the freshly created files, in case you wish
to check that they are uncorrupted:

292dbe4dc47e6b492ff72a62471654ca  R-1.7.0.tgz
693d29ea3959f1b862704b59367e4ac1  R-1.7.0.tgz-split.aa
42b3fa5bc17fc3151eaabd2db0f530ca  R-1.7.0.tgz-split.ab
3fa95fa9661b6ff3ff33936ca57bdb89  R-1.7.0.tgz-split.ac
c124f1be4d35676975527bc19efbd579  R-1.7.0.tgz-split.ad
bb3a82202a8f113abf0260b6b585dc92  R-1.7.0.tgz-split.ae
84720f839a564abc8255c9a4b8c2980d  R-1.7.0.tgz-split.af
cfe0314cfc1ceea9ec74d00919e82865  R-1.7.0.tgz-split.ag


        For the R Core Team,

        Peter D.


Here's the relevant part of the NEWS file:


		CHANGES IN R VERSION 1.7.0


USER-VISIBLE CHANGES

    o	solve(), chol(), eigen() and svd() now use LAPACK routines
	unless a new back-compatibility option is turned on.  The
	signs and normalization of eigen/singular vectors may change
	from earlier versions.

    o	The `methods', `modreg', `mva', `nls' and `ts' packages
	are now attached by default at startup (in addition to `ctest').
	The option "defaultPackages" has been added which contains the
	initial list of packages.  See ?Startup and ?options for details.
	Note that .First() is no longer used by R itself.

	class() now always (not just when `methods' is attached) gives
	a non-null class, and UseMethod() always dispatches on the
	class that class() returns.  This means that methods like
	foo.matrix and foo.integer will be used.  Functions oldClass()
	and oldClass<-() get and set the "class" attribute as R
	without `methods' used to.

    o	The default random number generators have been changed to
	`Mersenne-Twister' and `Inversion'.  A new RNGversion()
	function allows you to restore the generators of an earlier R
	version if reproducibility is required.

    o	Namespaces can now be defined for packages other than `base':
	see `Writing R Extensions'.  This hides some internal objects
	and changes the search path from objects in a namespace.  All
	the base packages (except methods and tcltk) have namespaces,
	as well as the recommended packages `KernSmooth', `MASS',
	`boot', `class', `nnet', `rpart' and `spatial'.

    o	Formulae are not longer automatically simplified when terms()
	is called, so the formulae in results may still be in the
	original form rather than the equivalent simplified form
	(which may have reordered the terms): the results are now
	much closer to those of S.

    o	The tables for plotmath, Hershey and Japanese have been moved
	from the help pages (example(plotmath) etc) to demo(plotmath) etc.

    o	Errors and warnings are sent to stderr not stdout on
	command-line versions of R (Unix and Windows).

    o	The R_X11 module is no longer loaded until it is needed, so
	do test that x11() works in a new Unix-alike R installation.


NEW FEATURES

    o	if() and while() give a warning if called with a vector condition.

    o	Installed packages under Unix without compiled code are no
	longer stamped with the platform and can be copied to other
	Unix-alike platforms (but not to other OSes because of
	potential problems with line endings and OS-specific help files).

    o	The internal random number generators will now never return
	values of 0 or 1 for runif.  This might affect simulation
	output in extremely rare cases.	 Note that this is not
	guaranteed for user-supplied random-number generators, nor
	when the standalone Rmath library is used.

    o	When assigning names to a vector, a value that is too short is
	padded by character NAs. (Wishlist part of PR#2358)

    o	It is now recommended to use the 'SystemRequirements:' field in
	the DESCRIPTION file for specifying dependencies external to the
	R system.

    o	Output text connections no longer have a line-length limit.

    o	On platforms where vsnprintf does not return the needed buffer
	size the output line-length limit for fifo(), gzfile() and
	bzfile() has been raised from 10k to 100k chars.

    o	The Math group generic does not check the number of arguments
	supplied before dispatch: it used to if the default method had
	one argument but not if it had two.  This allows trunc.POSIXt()
	to be called via the group generic trunc().

    o	Logical matrix replacement indexing of data frames is now
	implemented (interpreted as if the lhs was a matrix).

    o	Recursive indexing of lists is allowed, so x[[c(4,2)]] is
	shorthand for x[[4]][[2]] etc.	(Wishlist PR#1588)

    o	Most of the time series functions now check explicitly for a
	numeric time series, rather than fail at a later stage.

    o	The postscript output makes use of relative moves, and so is
	somewhat more compact.

    o	%*% and crossprod() for complex arguments make use of BLAS
	routines and so may be much faster on some platforms.

    o	arima() has coef(), logLik() (and hence AIC) and vcov() methods.

    o	New function as.difftime() for time-interval data.

    o	basename() and dirname() are now vectorized.

    o	biplot.default() {mva} allows `xlab' and `ylab' parameters to
	be set (without partially matching to `xlabs' and `ylabs').
	(Thanks to Uwe Ligges.)

    o	New function capture.output() to send printed output from an expression
	to a connection or a text string.

    o	ccf() (pckage ts) now coerces its x and y arguments to class "ts".

    o	chol() and chol2inv() now use LAPACK routines by default.

    o	as.dist(.) is now idempotent, i.e., works for "dist" objects.

    o	Generic function confint() and `lm' method (formerly in
	package MASS, which has `glm' and `nls' methods).

    o	New function constrOptim() for optimisation under linear inequality
	constraints.

    o	Add `difftime' subscript method and methods for the group
	generics. (Thereby fixing PR#2345)

    o	download.file() can now use HTTP proxies which require `basic'
	username/password authentication.

    o	dump() has a new argument `envir'.  The search for named
	objects now starts by default in the environment from which
	dump() is called.

    o	The edit.matrix() and edit.data.frame() editors can now handle
	logical data.

    o	New argument `local' for example() (suggested by Andy Liaw).

    o	New function file.symlink() to create symbolic file links
	where supported by the OS.

    o	New generic function flush() with a method to flush connections.

    o	New function force() to force evaluation of a formal argument.

    o	New functions getFromNamespace(), fixInNamespace() and
	getS3method() to facilitate developing code in packages with
	namespaces.

    o	glm() now accepts `etastart' and `mustart' as alternative ways
	to express starting values.

    o	New function gzcon() which wraps a connection and provides
	(de)compression compatible with gzip.

	load() now uses gzcon(), so can read compressed saves from
	suitable connections.

    o	help.search() can now reliably match individual aliases and
	keywords, provided that all packages searched were installed
	using R 1.7.0 or newer.

    o	hist.default() now returns the nominal break points, not those
	adjusted for numerical tolerances.

	To guard against unthinking use, `include.lowest' in
	hist.default() is now ignored, with a warning, unless `breaks'
	is a vector.  (It either generated an error or had no effect,
	depending how prettification of the range operated.)

    o	New generic functions influence(), hatvalues() and dfbeta()
	with lm and glm methods; the previously normal functions rstudent(),
	rstandard(), cooks.distance() and dfbetas() became generic.
	These have changed behavior for glm objects -- all originating from
	John Fox' car package.

    o	interaction.plot() has several new arguments, and the legend
	is not clipped anymore by default.  It internally uses axis(1,*)
	instead of mtext().
	This also addresses "bugs" PR#820, PR#1305, PR#1899.

    o	New isoreg() function and class for isotonic regression
	(`modreg' package).

    o	La.chol() and La.chol2inv() now give interpretable error
	messages rather than LAPACK error codes.

    o	legend() has a new `plot' argument.  Setting it `FALSE' gives
	size information without plotting (suggested by U.Ligges).

    o	library() was changed so that when the methods package is
	attached it no longer complains about formal generic functions
	not specific to the library.

    o	list.files()/dir() have a new argument `recursive'.

    o	lm.influence() has a new `do.coef' argument allowing *not* to
	compute casewise changed coefficients.	This makes plot.lm() much
	quicker for large data sets.

    o	load() now returns invisibly a character vector of the names
	of the objects which were restored.

    o	New convenience function loadURL() to allow loading data files
	from URLs (requested by Frank Harrell).

    o	New function mapply(), a multivariate lapply().

    o	New function md5sum() in package tools to calculate MD5
	checksums on files (e.g. on parts of the R installation).

    o	medpolish() {package eda} now has an `na.rm' argument (PR#2298).

    o	methods() now looks for registered methods in namespaces, and
	knows about many objects that look like methods but are not.

    o	mosaicplot() has a new default for `main', and supports the
	`las' argument (contributed by Uwe Ligges and Wolfram Fischer).

    o	An attempt to open() an already open connection will be detected
	and ignored with a warning.  This avoids improperly closing
	some types of connections if they are opened repeatedly.

    o	optim(method = "SANN") can now cover combinatorial optimization
	by supplying a move function as the `gr' argument (contributed
	by Adrian Trapletti).

    o	PDF files produced by pdf() have more extensive information
	fields, including the version of R that produced them.

    o	On Unix(-alike) systems the default PDF viewer is now determined
	during configuration, and available as the 'pdfviewer' option.

    o	pie(...) has always accepted graphical pars but only passed
	them on to title().  Now pie(, cex=1.5) works.

    o	plot.dendrogram (`mva' package) now draws leaf labels if present
	by default.

    o	New plot.design() function as in S.

    o	The postscript() and PDF() drivers now allow the title to be set.

    o	New function power.anova.test(), contributed by Claus Ekstrøm.

    o	power.t.test() now behaves correctly for negative delta in the
	two-tailed case.

    o	power.t.test() and power.prop.test() now have a `strict'
	argument that includes rejections in the "wrong tail" in the
	power calculation. (Based in part on code suggested by Ulrich
	Halekoh.)

    o	prcomp() is now fast for n x m inputs with m >> n.

    o	princomp() no longer allows the use of more variables than
	units: use prcomp() instead.

    o	princomp.formula() now has principal argument `formula', so
	update() can be used.

    o	Printing an object with attributes now dispatches on the
	class(es) of the attributes. See ?print.default for the fine
	print. (PR#2506)

    o	print.matrix() and prmatrix() are now separate functions.
	prmatrix() is the old S-compatible function, and
	print.matrix() is a proper print method, currently identical
	to print.default().  prmatrix() and the old print.matrix()
	did not print attributes of a matrix, but the new print.matrix()
	does.

    o	print.summary.{lm,glm} now default to symbolic.cor = FALSE, but
	symbolic.cor can be passed to the print methods from the
	summary methods.  print.summary.{lm,glm} print correlations to
	2 decimal places, and the symbolic printout avoids abbreviating
	labels.

    o	If a prompt() method is called with 'filename' as 'NA', a
	list-style representation of the documentation shell generated
	is returned.  New function promptData() for documenting objects
	as data sets.

    o	qqnorm() and qqline() have an optional logical argument
	`datax' to transpose the plot (S-PLUS compatibility).

    o	qr() now has the option to use LAPACK routines, and the
	results can be used by the helper routines qr.coef(), qr.qy()
	and qr.qty().  The LAPACK-using versions may be much faster
	for large matrices (using an optimized BLAS) but are less
	flexible.

    o	QR objects now have class "qr", and solve.qr() is now just the
	method for solve() for the class.

    o	New function r2dtable() for generating random samples of two-way
	tables with given marginals using Patefield's algorithm.

    o	rchisq() now has a non-centrality parameter `ncp', and there's a
	C API for rnchisq().

    o	New generic function reorder() with a dendrogram method;
	new order.dendrogram() and heatmap().

    o	require() has a new argument, character.only,
	  -- to make it align with library.

    o	New functions rmultinom() and dmultinom(), the first one with
	a C API.

    o	New function runmed() for fast runnning medians (`modreg' package).

    o	New function slice.index() for identifying indexes with respect
	to slices of an array.

    o	solve.default(a) now gives the dimnames one would expect.

    o	stepfun() has a new `right' argument for right-continuous step
	function construction.

    o	str() now shows ordered factors different from unordered ones.
	It also differentiates "NA" and as.character(NA), also for factor
	levels.

    o	symnum() has a new logical argument `abbr.colnames'.

    o	summary(<logical>) now mentions NA's as suggested by
	Göran Broström.

    o	summaryRprof() now prints times with a precision appropriate
	to the sampling interval, rather than always to 2dp.

    o	New function Sys.getpid() to get the process ID of the R session.

    o	table() now allows exclude= with factor arguments (requested by
	Michael Friendly).

    o	The tempfile() function now takes an optional second argument
	giving the directory name.

    o	The ordering of terms for terms.formula(keep.order=FALSE) is
	now defined on the help page and used consistently, so that
	repeated calls will not alter the ordering (which is why
	delete.response() was failing: see the bug fixes).  The
	formula is not simplified unless the new argument `simplify'
	is true.

    o	added "[" method for terms objects.

    o	New argument `silent' to try().

    o	ts() now allows arbitrary values for y in start/end = c(x, y):
	it always allowed y < 1 but objected to y > frequency.

    o	unique.default() now works for POSIXct objects, and hence so
	does factor().


    o	Package tcltk now allows return values from the R side to the
	Tcl side in callbacks and the R_eval command. If the return
	value from the R function or expression is of class "tclObj"
	then it will be returned to Tcl.

    o	A new HIGHLY EXPERIMENTAL graphical user interface using the tcltk
	package is provided. Currently, little more than a proof of concept.
	It can be started by calling "R -g Tk" (this may change in later
	versions) or by evaluating tkStartGUI(). Only Unix-like systems
	for now. It is not too stable at this point; in particular, signal
	handling is not working properly.


    o	Changes to support name spaces:

	- Placing base in a name space can no longer be disabled by
	  defining the environment variable R_NO_BASE_NAMESPACE.

	- New function topenv() to determine the nearest top level
	  environment (usually .GlobalEnv or a name space environment).

	- Added name space support for packages that do not use methods.

    o	Formal classes and methods can be `sealed', by using the
	corresponding argument to setClass or setMethod.  New
	functions isSealedClass() and isSealedMethod() test sealing.

    o	packages can now be loaded with version numbers. This allows
	for multiple versions of files to be installed (and potentially
	loaded). Some serious testing will be going on, but it should
	have no effect unless specifically asked for.


INSTALLATION CHANGES

    o	TITLE files in packages are no longer used, the Title field
	in the DESCRIPTION file being preferred.  TITLE files will be
	ignored in both installed packages and source packages.

    o	When searching for a Fortran 77 compiler, configure by default
	now also looks for Fujitsu's frt and Compaq's fort, but no
	longer for cf77 and cft77.

    o	Configure checks that mixed C/Fortran code can be run before
	checking compatibility on ints and doubles: the latter test
	was sometimes failing because the Fortran libraries were not
	found.

    o	PCRE and bzip2 are built from versions in the R sources if the
	appropriate library is not found.

    o	New configure option --with-lapack to allow high-performance
	LAPACK libraries to be used: a generic LAPACK library will be
	used if found.	This option is not the default.

    o	New configure options --with-libpng, --with-jpeglib, --with-zlib,
	--with-bzlib and --with-pcre, principally to allow these
	libraries to be avoided if they are unsuitable.

    o	If the precious variable R_BROWSER is set at configure time
	it overrides the automatic selection of the default browser.
	It should be set to the full path unless the browser appears
	at different locations on different client machines.

    o	Perl requirements are down again to 5.004 or newer.

    o	Autoconf 2.57 or later is required to build the configure
	script.

    o	Configure provides a more comprehensive summary of its results.

    o	Index generation now happens when installing source packages
	using R code in package tools.	An existing 'INDEX' file is used
	as is; otherwise, it is automatically generated from the \name
	and \title entries in the Rd files.  Data, demo and vignette
	indices are computed from all available files of the respective
	kind, and the corresponding index information (in the Rd files,
	the 'demo/00Index' file, and the \VignetteIndexEntry{} entries,
	respectively).	These index files, as well as the package Rd
	contents data base, are serialized as R objects in the 'Meta'
	subdirectory of the top-level package directory, allowing for
	faster and more reliable index-based computations (e.g., in
	help.search()).

    o	The Rd contents data base is now computed when installing source
	packages using R code in package tools.	 The information is
	represented as a data frame without collapsing the aliases and
	keywords, and serialized as an R object.  (The 'CONTENTS' file
	in Debian Control Format is still written, as it is used by the
	HTML search engine.)

    o	A NAMESPACE file in root directory of a source package is copied
	to the root of the package installation directory.  Attempting to
	install a package with a NAMESPACE file using --save signals an
	error; this is a temporary measure.


DEPRECATED & DEFUNCT

    o	The assignment operator `_' will be removed in the next
	release and users are now warned on every usage: you may even see
	multiple warnings for each usage.

	If environment variable R_NO_UNDERLINE is set to anything of
	positive length then use of `_' becomes a syntax error.

    o	machine(), Machine() and Platform() are defunct.

    o	restart() is defunct.  Use try(), as has long been recommended.

    o	The deprecated arguments `pkg' and `lib' of system.file() have
	been removed.

    o	printNoClass() {methods} is deprecated (and moved to base,
	since it was a copy of a base function).

    o	Primitives dataClass() and objWithClass() have been replaced
	by class() and class<-(); they were internal support functions
	for use by package methods.

    o	The use of SIGUSR2 to quit a running R process under Unix is
	deprecated, the signal may need to be reclaimed for other
	purposes.


UTILITIES

    o	R CMD check more compactly displays the tests of DESCRIPTION
	meta-information.  It now reports demos and vignettes without
	available index information.  Unless installation tests are
	skipped, checking is aborted if the package dependencies cannot
	be resolved at run time.  Rd files are now also explicitly
	checked for empty \name and \title entries.  The examples are
	always run with T and F redefined to give an error if used
	instead of TRUE and FALSE.

    o	The Perl code to build help now removes an existing example
	file if there are no examples in the current help file.

    o	R CMD Rdindex is now deprecated in favor of function Rdindex()
	in package tools.

    o	Sweave() now encloses the Sinput and Soutput environments of
	each chunk in an Schunk environment. This allows to fix some
	vertical spacing problems when using the latex class slides.


C-LEVEL FACILITIES

    o	A full double-precision LAPACK shared library is made
	available as -lRlapack.	 To use this include
	$(LAPACK_LIBS) $(BLAS_LIBS) in PKG_LIBS.

    o	Header file R_ext/Lapack.h added.  C declarations of BLAS
	routines moved to R_ext/BLAS.h and included in R_ext/Applic.h
	and R_ext/Linpack.h for backward compatibility.

    o	R will automatically call initialization and unload routines, if
	present, in shared libraries/DLLs during dyn.load() and
	dyn.unload() calls. The routines are named R_init_<dll name>
	and R_unload_<dll name>, respectively.	See the Writing R
	Extensions Manual for more information.

    o	Routines exported directly from the R executable for use with
	.C(), .Call(), .Fortran() and .External() are now accessed via
	the registration mechanism (optionally) used by packages.  The
	ROUTINES file (in src/appl/) and associated scripts to
	generate FFTab.h and FFDecl.h are no longer used.

    o	Entry point Rf_append is no longer in the installed headers
	(but is still available).  It is apparently unused.

    o	Many conflicts between other headers and R's can be avoided by
	defining STRICT_R_HEADERS and/or R_NO_REMAP -- see `Writing R
	Extensions' for details.

    o	New entry point R_GetX11Image and formerly undocumented
	ptr_R_GetX11Image are in new header R_ext/GetX11Image.	These
	are used by package tkrplot.


BUG FIXES

    o	Sys.sleep() on Unix was having trouble with waits of less than 0.5s

    o	The fix to PR#2396 broke read.table() on files with CR line
	endings. (PR#2469)   Separate problem with this on Carbon MacOS
	build fixed as well.

    o	Converting Sweave files to noweb syntax using SweaveSyntConv()
	was broken.

    o	Printing numbers near the minimum could get the number of
	significant figures wrong due to underflow: for example 4e-308
	might print as 4.00000e-308.  (Seen on some Windows builds,
	and also on numbers around 1e-317 on Linux.)

    o	wilcox.test() could give integer overflow warnings on very long
	vectors.  Also added tests for numeric inputs, as per the help
	page.  (PR#2453)

    o	Printing unquoted character vectors containing escape
	characters was computing the wrong length and hence
	misaligning names.  This was due to a bug in Rstrlen which
	might have had other effects.

    o	if(logical(0)) and while(logical(0)) now report zero length,
	not `missing value where logical is needed'.

    o	The gaussian() and inverse.gaussian() families were documented
	to allow only one link, which has not been true in R for at
	least four years.

    o	prmatrix() forced conversion to character if `na.print' was
	used, and that conversion neither respected `digits' nor
	`quote'.

    o	Rprof() might give misleading results for too small values of
	`interval' and in practice the default 20ms was about as small
	as is advisable on Linux.  Now the interval is forced to be at
	least one clock tick.

    o	summary.data.frame() was not giving interpretable results when
	the data frame contained a data frame as a column. (PR#1891)

    o	delete.response() might re-order the rhs terms so prediction
	might fail or even give incorrect results. (PR#2206)

    o	StructTS() now accepts numeric time series of integer storage mode.

    o	all(), any() now handle NAs as documented.

    o	Subsetting arrays to a result with 0 dimension(s) failed if
	the array had dimnames. (PR#2507)

    o	If the call to data.frame() included 0-row arguments, it tried
	to replicate them to the maximum number of rows, and failed if
	this was 1 or more.

    o	replicate() now understands data frames to which na.omit() has
	been applied.

    o	is.ts() was too liberal: a time series must have at least one point.

    o	methods() was sorting by package, not by name.

    o	symbols(thermometers=) was often giving a spurious warning about
	the range.

    o	tcltk was using deprecated internals of the Tcl library when
	accessing error messages.  Not likely to be a user-visible
	change.

    o	The automatic search for BLAS libs now tries Sun's libsunperf
	the way the latest versions require. (PR#2530)

    o	str(array(1)) now does show the array.
	str(Surv(...)) now works again.

    o	step(), add1.default() and drop1.default() now work somewhat
	better if called from a function.

    o	page() was searching from the wrong environment, and so
	searching base before the workspace.

    o	crossprod(Z) for complex Z was returning nonsense.

    o	La.chol2inv() gave incorrect results unless the matrix was square.

    o	When the POSIXt date functions were required to guess DST,
	they sometimes guessed correctly that DST was in force but
	converted a POSIXlt time as if standard time was given.

    o	c/rbind were not handling zero col/row matrices correctly.
	(PR#2541 was one symptom.)

    o	approx() and approxfun() now work with 1 knot if
	method = "constant".  stepfun(), ecdf() and plot.stepfun() do so
	as well.

    o	AIC.lm/default was failing if multiple objects and k were
	specified.  (PR#2518)

    o	removeMethods{methods} was broken. (PR#2519)

    o	summary.glm() had two `aic' components in the returned object.

    o	autoload() was returning the value of its last command, a
	promise, even though it was documented to have no value.
	As a result some packages (e.g. nlme) were loading packages
	they meant to autoload.

    o	Fixes to methods and classes:
	   - show() is consistent with using setOldClass for S3 classes.
	   - several problems with the coerce and replace methods
	     generated by setIs have been fixed.
	   - more thorough tests & informative messages for invalid
	     `def' arguments to setGeneric
	   - setGeneric will now create the generic function even when
	     a generic of the same name already exists (it does issue
	     a warning).

    o	unz() connections could no longer be opened. (PR#2579)

    o	unique(ordered factor) returned an unordered factor. (PR#2591)

    o	x[] <- value coerced x to the mode of value if and only if x
	had length 0!  (Should only happen if x is null: PR#2590)

    o	lm() mislabelled the cols of the qr decomposition. (cause of PR#2586)

    o	data() looks for file extensions in an order prescribed in the
	help file: previously whether foo.R or foo.csv was used was
	locale-dependent.

    o	sys.function() now returns the actual function being evaluated in
	the specified frame rather than one inferred from the call.

    o	match.call() now uses the definition of the actual function being
	evaluated rather than one inferred from the call.

    o	abbreviate(*, dot = TRUE) now only adds a "." where abbreviations
	did happen.

    o	Changing timezones in the POSIXt functions was not working on
	some Linux systems, and this has been corrected.

    o	ks.test() in package ctest had numerical problems in the lower
	tail of the asymptotic distribution (PR#2571).

    o	Sweave() now handles empty chunks at the end of files correctly.

    o	[<-() lost the object bit if coercion was involved.

    o	package::object wasn't being deparsed properly.

    o	seq.POSIXt() with `by' an object of class "difftime" ignored
	the units.

    o	rank(c("B", NA)) no longer returns character.

    o	reference to by() added in ?tapply

    o	?lm describes what happens with matrix response

    o	The X11 device has improved event handling. In particular it
	used to often miss the last of a series of resize events.

    o	lm.influence() and related functions now work again for the
	multivariate case and when there are zero weights.

    o	format( <character> ) now always keeps names and dimnames.

    o	table(factor(c(2,NA), exclude=NULL)) prints better now.

    o	predict(foo, type = "terms") and hence
	residuals(foo, type = "partial") now work for lm and glm objects
	with weights zero.  Further, model.matrix() is now only called once.

    o	R CMD config now works correctly when called from a Makefile
	using GNU make.

    o	The data.frame method for rbind() was
	- converting character columns to factors,
	- converting ordered factor columns to unordered factors,
	- failing to append correctly a factor to a character column
	  and vice versa.

    o	as.hclust.twins() now does provide proper `labels', `method' and
	`call' components.

    o	cycle() sometimes failed on a time series which started at a cycle
	other than 1.

    o	read.dcf() read incorrectly files which did not end in a new line.

    o   read.socket() dropped certain non-alphanumeric characters. (PR#2639)

    o   termplot() handles missing data better (PR#2687, 
         <Mark.Bravington at csiro.au>)

    o	Corrected MacRoman encoding for Icircumflex etc.


-- 
   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



More information about the R-announce mailing list