Rev 30284 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
Dear Emacs, please make this -*-Text-*- mode!*************************************************** ** 1.9 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.9.1 PatchedINSTALLATION ISSUESo Installation will now work even in Norwegian and Danish localeswhich sort AA at the end (for package stats4 which has AAA.R).BUG FIXESo Various memory leaks have been plugged and uses of strcpy()with overlapping src and dest corrected.o R CMD INSTALL now also works for /bin/sh's such as the one fromSolaris 8 which fail when a function has the same name as a variable.o The Date method for trunc() failed.o window() failed if both start and end were outside the timerange of the original series (possible if extend = TRUE).o coplot(..) doesn't give an extraneous warning anymore when calledon a fresh device.o hasArg() used wrong logic to get the parent function. (sys.function()behaves differently from what is documented.o prompt(f) now gives proper \usage{..} forf <- function(x, g = function(u) { x <- u^2 ; sin(x)/x }) { g(x) }o package.skeleton() now uses the supplied name in the DESCRIPTIONfile.o options(list('digits', 'scipen')) no longer seg.faults (PR#7078).o summary.Date() now has a sensible default for 'digits'.CHANGES IN R VERSION 1.9.1NEW FEATURESo as.Date() now has a method for "POSIXlt" objects.o mean() has a method for "difftime" objects and so summary()works for such objects.o legend() has a new argument 'pt.cex'.o plot.ts() has more arguments, particularly 'yax.flip'.o heatmap() has a new 'keep.dendro' argument.o The default barplot method now handles vectors and 1-d arrays(e.g., obtained by table()) the same, and uses grey instead ofheat color palettes in these cases. (Also fixes PR#6776.)o nls() now looks for variables and functions in its formula inthe environment of the formula before the search path, in thesame way lm() etc look for variables in their formulae.INSTALLATION ISSUESo src/modules/X11/dataentry.c would not build on some XFree4.4.0 systems. (This is a bug in their header files but we haveadded a workaround.)o Building with gcc/g77 3.4.0 on ix86 platforms failed to producea working build: the critical LAPACK routines are now compiledwith -ffloat-store.o Added patches to enable 64-bit builds on AIX 5.1: see the R-adminmanual for details.o Added some patches to allow non-IEEE-754 installations to workreasonably well. (Infs and NAs are still not handled properlyin complex arithmetic and functions such as sin(). See alsoDeprecated, as support for non-IEEE-754 installations is aboutto be removed.)o Installation will now work in Estonian (et_EE*) locales, whichsort z before u. (PR#6958)DEPRECATED & DEFUNCTo Support for non-IEEE-754 arithmetic (which has been untestedfor some time) will be removed in the next full release.o Direct use of R INSTALL|REMOVE|BATCH|COMPILE|SHLIB isdeprecated: use R CMD instead.o The gnome/GNOME graphics device is deprecated and will beremoved in the next full release.BUG FIXESo pbinom(q, N, prob) is now more accurate when prob is close to 0.(PR#6757)o pcauchy(x, .., log.p) is now more accurate for large x,particularly when log.p = TRUE. (PR#6756)o pgeom(q, prob, lower.tail, log.p) is now (sometimes much) moreaccurate when prob is very small. (PR#6792)The code for pgeom(prob=1) assumed IEEE 754 arithmetic, andgave NaNs under gcc 3.4.0 -fPIC, for example.o makeARIMA() was not handling an ARMA(0, 0) model correctly.o as.Date() was failing on factors. (PR#6779)o min(), max() and range() were failing on "difftime" objects.o as.data.frame.list() could fail on some unusual list names.(PR#6782)o type.convert() ignored na.strings when no conversion was done.(PR#6781, not needed for its primary use in read.table.)o Fixed a clipping problem in the quartz() device.o Subsetting a factor swapped the order of the attributes, whichidentical() cares about. (PR#6799)o The L-BFGS-B option of optim() apparently needs part of itsworkspace zeroed. (PR#6720)o extractAIC.survreg() needed updating.o When using the header Rmath.h in standalone mode, the case whereTRUE, FALSE are already defined is now handled correctly.o Package utils now exports several functions that are needed forwriting Sweave drivers.o Comparison of two lists/expressions was giving nonsensical(and often random) answers, and is now an error.o The C-level function ncols was returning a random answer(often 0) for a 1D array. This caused model.matrix tomisbehave (perhaps segfault) if a term was a 1D array. (PR#6838)o The configure script now finds the pdf viewers ggv and gpdf.o Workaround for the problems strptime on MacOS X has with datesbefore 1900.o 'R CMD build' works in a directory whose path contains spaces.(PR#6830 under Unix/Linux: it already worked under Windows.)Also 'R CMD check'.o mosaicplot() stops cleanly if given a table containing missing values.o install.packages() from a local CRAN was broken.o bxp() fixed for e.g., boxplot(..., border=2:4)o approx(list(x=rep(NaN,9), y=1:9), xout=NaN) does not seg.faultanymore (PR#6809).o plot(1, pch=NA) does not give an error anymore andplot(1:2, pch=c("o",NA)) only prints one symbol (PR#6876).o diffinv(matrix(3, 7,0)) now works.o plot.ts(z) for multivariate 'z' now properly draws all 'nc' xlab`swhen nc > 1 and obeys 'ann=FALSE' or 'axes=FALSE'.o aggregate(.data.frame) failed if the answer would have had onerow.o recordPlot() and replayPlot() failed to duplicate the displaylist, so further plotting altered the saved or replayed object.o Assignments of the form adf[i,j] <- value now accept adata-frame value as well as a list value.o dir.create() sometimes erroneously continued to report a directoryalready existed after the first instance. (PR#6892)o arima.sim() allows a null model.o which.min() & which.max()'s C code now PROTECT()'s its result.o Building standalone nmath did not support some of the DEBUG options.o mle() got confused if start value list was not in same order asarguments of likelihood function (reported by Ben Bolker)o backsolve(r, x, k) now allows k < nrow(x) - as its documentationalways claimed.o update.packages("mgcv") and old.packages(*) now give a better errormessage; and installed.packages("mgcv") properly returns <empty>.o stats:::as.dendrogram.hclust() is documented and no longer re-sortsthe two children at each node. This fixes as.dendrogram(hh) forthe case where hh is a "reordered" hclust object.plot.dendrogram(x) now draws leaves 'x' more sensibly.reorder.dendrogram() now results in a dendrogram with correct"midpoint"s, and hence reordered dendrograms are plotted correctly.stats:::midcache.dendrogram() and hence the reorder() and rev()dendrogram methods do not return bloated dendrograms.o heatmap(*, labRow=., labCol=.) now also reorders the labels whenspecified---not only when using default labels.o Copying lattice (grid) output to another device now works again(There were intermittent problems in 1.9.0 - PR#6915, #6947/8.)o hist() uses a more robust choice of its 'diddle' factor, usedto detect if an observation is on a bin boundary. (PR#6931)o jitter(x) now returns x when length(x) == 0.o Under some rare circumstances the locale-specific tables used bythe perl=TRUE option to grep() etc were being corrupted and somatches were missed.o qbinom(*, prob = 0, lower.tail = FALSE) now properly gives 0.(PR#6972)o Class "octmode" needed a "[" method to preserve the class: seeexample(file.info) for an example.CHANGES IN R VERSION 1.9.0USER-VISIBLE CHANGESo Underscore '_' is now allowed in syntactically valid names, andmake.names() no longer changes underscores. Very old codethat makes use of underscore for assignment may now giveconfusing error messages.o Package 'base' has been split into packages 'base', 'graphics','stats' and 'utils'. All four are loaded in a defaultinstallation, but the separation allows a 'lean and mean'version of R to be used for tasks such as building indices.Packages ctest, eda, modreg, mva, nls, stepfun and ts have beenmerged into stats, and lqs has been returned to MASS. In allcases a stub has been left that will issue a warning and ensurethat the appropriate new home is loaded. All the time seriesdatasets have been moved to package stats. Sweave has beenmoved to utils.Package mle has been moved to stats4 which will become thecentral place for statistical S4 classes and methodsdistributed with base R. Package mle remains as a stub.Users may notice that code in .Rprofile is run with only thenew base loaded and so functions may now not be found. Forexample, ps.options(horizontal = TRUE) should be preceded bylibrary(graphics) or called as graphics::ps.options or,better, set as a hook -- see ?setHook.o There has been a concerted effort to speed up the startup ofan R session: it now takes about 2/3rds of the time of 1.8.1.o A warning is issued at startup in a UTF-8 locale, as currently Ronly supports single-byte encodings.NEW FEATURESo $, $<-, [[, [[<- can be applied to environments. Only characterarguments are allowed and no partial matching is done. Thesemantics are basically that of get/assign to the environment withinherits=FALSE.o There are now print() and [ methods for "acf" objects.o aov() will now handle singular Error() models, with a warning.o arima() allows models with no free parameters to be fitted (tofind log-likelihood and AIC values, thanks to Rob Hyndman).o array() and matrix() now allow 0-length `data' arguments forcompatibility with S.o as.data.frame() now has a method for arrays.o as.matrix.data.frame() now coerces an all-logical data frameto a logical matrix.o New function assignInNamespace() parallelling fixInNamespace.o There is a new function contourLines() to produce contourlines (but not draw anything). This makes the CRAN packageclines (with its clines() function) redundant.o D(), deriv(), etc now also differentiate asin(), acos(), atan(),(thanks to a contribution of Kasper Kristensen).o The `package' argument to data() is no longer allowed to be a(unquoted) name and so can be a variable name or a quotedcharacter string.o There is a new class "Date" to represent dates (without times)plus many utility functions similar to those for date-times.See ?Date.o Deparsing (including using dump() and dput()) an integervector now wraps it in as.integer() so it will be source()dcorrectly. (Related to PR#4361.)o .Deprecated() has a new argument `package' which is used inthe warning message for non-base packages.o The print() method for "difftime" objects now handles arrays.o dir.create() is now an internal function (rather than a call tomkdir) on Unix as well as on Windows. There is now an optionto suppress warnings from mkdir, which may or may not havebeen wanted.o dist() has a new method to calculate Minkowski distances.o expand.grid() returns appropriate array dimensions and dimnamesin the attribute "out.attrs", and this is used by thepredict() method for loess to return a suitable array.o factanal(), loess() and princomp() now explicitly check fornumerical inputs; they might have silently coded factorvariables in formulae.o New functions factorial(x) defined as gamma(x+1) and forS-PLUS compatibility, lfactorial(x) defined as lgamma(x+1).o findInterval(x, v) now allows +/-Inf values, and NAs in x.o formula.default() now looks for a "terms" component before a'formula' argument in the saved call: the component will have`.' expanded and probably will have the original environmentset as its environment. And what it does is now documented.o glm() arguments `etastart' and `mustart' are now evaluated viathe model frame in the same way as `subset' and `weights'.o Functions grep(), regexpr(), sub() and gsub() now coerce theirarguments to character, rather than give an error.The perl=TRUE argument now uses character tables prepared forthe locale currently in use each time it is used, rather thanthose of the C locale.o New functions head() and tail() in package `utils'.(Based on a contribution by Patrick Burns.)o legend() has a new argument 'text.col'.o methods(class=) now checks for a matching generic, and so nolonger returns methods for non-visible generics (andeliminates various mismatches).o A new function mget() will retrieve multiple values from anenvironment.o model.frame() methods, for example those for "lm" and "glm",pass relevant parts of ... onto the default method. (This haslong been documented but not done.) The default method is nowable to cope with model classes such as "lqs" and "ppr".o nls() and ppr() have a `model' argument to allow the model frameto be returned as part of the fitted object.o "POSIXct" objects can now have a "tzone" attribute thatdetermines how they will be converted and printed. This meansthat date-time objects which have a timezone specified willgenerally be regarded as in their original time zone.o postscript() device output has been modified to work aroundrounding errors in low-precision calculations in gs >= 8.11.(PR#5285, which is not a bug in R.)It is now documented how to use other Computer Modern fonts,for example italic rather than slanted.o ppr() now fully supports categorical explanatory variables,ppr() is now interruptible at suitable places in theunderlying FORTRAN code.o princomp() now warns if both `x' and `covmat' are supplied,and returns scores only if the centring used is known.o psigamma(x, deriv=0), a new function generalizes, digamma() etc.All these (psigamma, digamma, trigamma,...) now also work for x < 0.o pchisq(*, ncp > 0) and hence qchisq() now work with much highervalues of ncp; it has become much more accurate in the left tail.o read.table() now allows embedded newlines in quoted fields. (PR#4555)o rep.default(0-length-vector, length.out=n) now gives a vectorof length n and not length 0, for compatibility with S.If both `each' and `length.out' have been specified, it nowrecycles rather than fills with NAs for S compatibility.If both `times' and `length.out' have been specified, `times'is now ignored for S compatibility. (Previously padding withNAs was used.)The "POSIXct" and "POSIXlt" methods for rep() now pass ... onto the default method (as expected by PR#5818).o rgb2hsv() is new, an R interface the C API function with the same name.o User hooks can be set for onLoad, library, detach andonUnload of packages/namespaces: see ?setHook.o save() default arguments can now be set using option"save.defaults", which is also used by save.image() if option"save.image.defaults" is not present.o New function shQuote() to quote strings to be passed to OS shells.o sink() now has a split= argument to direct output to both thesink and the current output connection.o split.screen() now works for multiple devices at once.o On some OSes (including Windows and those using glibc)strptime() did not validate dates correctly, so we have addedextra code to do so. However, this cannot correct scanningerrors in the OS's strptime (although we have been able towork around these on Windows). Some examples are now tested forduring configuration.o strsplit() now has `fixed' and `perl' arguments andsplit="" is optimized.o subset() now allows a `drop' argument which is passed on tothe indexing method for data frames.o termplot() has an option to smooth the partial residuals.o varimax() and promax() add class "loadings" to their loadingscomponent.o Model fits now add a "dataClasses" attribute to the terms, whichcan be used to check that the variables supplied forprediction are of the same type as those used for fitting.(It is currently used by predict() methods for classes "lm","mlm", "glm" and "ppr", as well as methods in packages MASS,rpart and tree.)o New command-line argument --max-ppsize allows the size of thepointer protection stack to be set higher than the previouslimit of 10000.o The fonts on an X11() device (also jpeg() and png() on Unix)can be specified by a new argument `fonts' defaulting to thevalue of a new option "X11fonts".o New functions in the tools package: pkgDepends, getDepList andinstallFoundDepends. These provide functionality for assessingdependencies and the availability of them (either locally orfrom on-line repositories).o The parsed contents of a NAMESPACE file are now stored atinstallation and if available used to speed loading thepackage, so packages with namespaces should be reinstalled.o Argument `asp' although not a graphics parameter is acceptedin the ... of graphics functions without a warning. It nowworks as expected in contour().o Package stats4 exports S4 generics for AIC() and BIC().o The Mac OS X version now produces an R framework for easier linkingof R into other programs. As a result, R.app is now relocatable.o Added experimental support for conditionals in NAMESPACE files.o Added as.list.environment to coerce environments to lists(efficiently).o New function addmargins() in the stats package to add marginalsummaries to tables, e.g. row and column totals. (Based on acontribution by Bendix Carstensen.)o dendrogam edge and node labels can now be expressions (to beplotted via stats:::plotNode called from plot.dendrogram).The diamond frames around edge labels are more nicely scaledhorizontally.o Methods defined in the methods package can now includedefault expressions for arguments. If these arguments aremissing in the call, the defaults in the selected method willoverride a default in the generic. See ?setMethod.o Changes to package 'grid':- Renamed push/pop.viewport() to push/popViewport().- Added upViewport(), downViewport(), and seekViewport() toallow creation and navigation of viewport tree(rather than just viewport stack).- Added id and id.lengths arguments to grid.polygon() to allowmultiple polygons within single grid.polygon() call.- Added vpList(), vpStack(), vpTree(), and current.vpTree()to allow creation of viewport "bundles" that may be pushedat once (lists are pushed in parallel, stacks in series).current.vpTree() returns the current viewport tree.- Added vpPath() to allow specification of viewport pathin downViewport() and seekViewport().See ?viewports for an example of its use.NOTE: it is also possible to specify a path directly,e.g., something like "vp1::vp2", but this is onlyadvised for interactive use (in case I decide to change theseparator :: in later versions).- Added "just" argument to grid.layout() to allow justificationof layout relative to parent viewport *IF* the layout is notthe same size as the viewport. There's an example inhelp(grid.layout).- Allowed the "vp" slot in a grob to be a viewport name or avpPath. The interpretation of these new alternatives is tocall downViewport() with the name or vpPath before drawing thegrob and upViewport() the appropriate amount after drawing thegrob. Here's an example of the possible usage:pushViewport(viewport(w=.5, h=.5, name="A"))grid.rect()pushViewport(viewport(w=.5, h=.5, name="B"))grid.rect(gp=gpar(col="grey"))upViewport(2)grid.rect(vp="A", gp=gpar(fill="red"))grid.rect(vp=vpPath("A", "B"), gp=gpar(fill="blue"))- Added engine.display.list() function. This allows the user totell grid NOT to use the graphics engine display list and to handleALL redraws using its own display list (including redraws afterdevice resizes and copies).This provides a way to avoid some of the problems with resizinga device when you have used grid.convert(), or the gridBase package,or even base functions such as legend().There is a document discussing the use of display lists in gridon the grid web site(http://www.stat.auckland.ac.nz/~paul/grid/grid.html)- Changed the implementation of grob objects. They are no longerimplemented as external references. They are now regular R objectswhich copy-by-value. This means that they can be saved/loadedlike normal R objects. In order to retain some existing grobbehaviour, the following changes were necessary:+ grobs all now have a "name" slot. The grob name is used touniquely identify a "drawn" grob (i.e., a grob on the displaylist).+ grid.edit() and grid.pack() now take a grob name as the firstargument instead of a grob. (Actually, they take a gPath -see below)+ the "grobwidth" and "grobheight" units take either a grobOR a grob name (actually a gPath - see below). Only in thelatter case will the unit be updated if the grob "pointed to"is modified.In addition, the following features are now possible with grobs:+ grobs now save()/load() like any normal R object.+ many grid.*() functions now have a *Grob() counterpart. Thegrid.*() version is used for its side-effect of drawingsomething or modifying something which has been drawn; the*Grob() version is used for its return value, which is a grob.This makes it more convenient to just work with grobobjects without producing any graphical output(by using the *Grob() functions).+ there is a gTree object (derived from grob), which is a grobthat can have children. A gTree also has a "childrenvp" slotwhich is a viewport which is pushed and then "up"ed before thechildren are drawn; this allows the children of a gTree toplace themselves somewhere in the viewports specified in thechildrenvp by having a vpPath in their vp slot.+ there is a gPath object, which is essentially a concatenationof grob names. This is used to specify the child of(a child of ...) a gTree.+ there is a new API for creating/accessing/modifying grob objects:grid.add(), grid.remove(), grid.edit(), grid.get() (and their*Grob() counterparts can be used to add, remove, edit, or extracta grob or the child of a gTree. NOTE: the new grid.edit() APIis incompatible with the previous version.- Added stringWidth(), stringHeight(), grobWidth(), and grobHeight()convenience functions (they produce "strwidth", "strheight","grobwidth", and "grobheight" unit objects, respectively).- Allowed viewports to turn off clipping altogether.Possible settings for viewport clip arg are now:"on" = clip to the viewport (was TRUE)"inherit" = clip to whatever parent says (was FALSE)"off" = turn off clippingStill accept logical values (and NA maps to "off")UTILITIESo R CMD check now runs the (Rd) examples with default RNGkind(uniform & normal) and set.seed(1).example(*, setRNG = TRUE) does the same.o undoc() in package `tools' has a new default of `use.values =NULL' which produces a warning whenever the default values offunction arguments differ between documentation and code.Note that this affects "R CMD check" as well.o Testing examples via massage-examples.pl (as used by R CMDcheck) now restores the search path after every help file.o checkS3methods() in package 'tools' now also looks for genericsin the loaded namespaces/packages listed in the Depends fieldsof the package's DESCRIPTION file when testing an installedpackage.o The DESCRIPTION file of packages may contain a 'Suggests:'field for packages that are only used in examples orvignettes.o Added an option to package.dependencies() to handle the'Suggests' levels of dependencies.o Vignette dependencies can now be checked and obtained viavignetteDepends.o Option 'repositories' to list URLs for package repositoriesadded.o package.description() has been replaced by packageDescription().o R CMD INSTALL/build now skip Subversion's .svn directories aswell as CVS directories.C-LEVEL FACILITIESo arraySubscript and vectorSubscript take a new argument whichis a function pointer that provides access to characterstrings (such as the names vector) rather than assuming theseare passed in.o R_CheckUserInterrupt is now described in `Writing R Extensions'and there is a new equivalent subroutine rchkusr for callingfrom FORTRAN code.o hsv2rgb and rgb2hsv are newly in the C API.o Salloc and Srealloc are provided in S.h as wrappers for S_allocand S_realloc, since current S versions use these forms.o The type used for vector lengths is now R_len_t rather thanint, to allow for a future change.o The internal header nmath/dpq.h has slightly improved macrosR_DT_val() and R_DT_Cval(), a new R_D_LExp() and improvedR_DT_log() and R_DT_Clog(); this improves accuracy in several[dpq]-functions {for "extreme" arguments}.DEPRECATED & DEFUNCTo print.coefmat() is defunct, replaced by printCoefmat().o codes() and codes<-() are defunct.o anovalist.lm (replaced in 1.2.0) is now defunct.o glm.fit.null(), lm.fit.null() and lm.wfit.null() are defunct.o print.atomic() is defunct.o The command-line arguments --nsize and --vsize are no longerrecognized as synonyms for --min-nsize and --min-vsize (whichreplaced them in 1.2.0).o Unnecessary methods coef.{g}lm and fitted.{g}lm have beenremoved: they were each identical to the default method.o La.eigen() is deprecated now eigen() uses LAPACK by default.o tetragamma() and pentagamma() are deprecated, since they areequivalent to psigamma(, deriv=2) and psigamma(, deriv=3).o LTRUE/LFALSE in Rmath.h have been removed: they weredeprecated in 1.2.0.o package.contents() and package.description() have been deprecated.INSTALLATION CHANGESo The defaults for configure are now --without-zlib--without-bzlib --without-pcre.The included PCRE sources have been updated to version 4.5 andPCRE >= 4.0 is now required if --with-pcre is used.The included zlib sources have been updated to 1.2.1, and thisis now required if --with-zlib is used.o configure no longer lists bzip2 and PCRE as `additionalcapabilities' as all builds of R have had them since 1.7.0.o --with-blas=goto to use K. Goto's optimized BLAS will now work.BUG FIXESo When lm.{w}fit() disregarded arguments in ... they reportedthe values and not the names.o lm(singular.ok = FALSE) was looking for 0 rank, not rank < p.o The substitution code for strptime in the sources no longerfollows glibc in silently `correcting' invalid inputs.o The cor() function did not remove missing values in thenon-Pearson case.o [l]choose() use a more accurate formula which also slightlyimproves p- and qhyper(); choose(n, k) now returns 0 insteadof NaN for k < 0 or > n.o find(simple.words=TRUE) (the default) was still using regularexpressions for e.g. "+" and "*". Also, it checked the modeonly of the first object matching a regular expression foundin a package.o Memory leaks in [dpq]wilcox and [dqr]signrank have been plugged.These only occurred when multiple values of m or n > 50 wereused in a single call. (PR#5314, plus another potential leak.)o Non-finite input values to eigen(), La.eigen(), svd() andLa.svd() are now errors: they often caused infinitelooping. (PR#5406, PR#4366, PR#3723: the fix for 3723/4366returned a vector of NAs, not a matrix, for the eigenvectors.)o stepfun(x,y) now gives an error when `x' has length 0 insteadof an invalid result (that could lead to a segmentationfault).o buildVignettes() uses file.remove() instead of unlink() toremove temporary files.o methods(class = "lqs") does not produce extraneous entries anymore.o Directly calling a method that uses NextMethod() no longerproduces the erroneous error message 'function is not aclosure'.o chisq.test(x, simulate.p.value = TRUE) could hang in an infiniteloop or segfault, as r2dtable() did, when the entries in x wherelarge. (PR#5701)o fisher.test(x) could give a P-value of 'Inf' in similar cases whichnow result in an error (PR#4688). It silently truncatednon-integer 'x' instead of rounding.o cutree(a, h=h) silently gave wrong results when 'a' was anagnes object; now gives an error and reminds of as.hclust().o postscript() could crash if given a font value outside thevalid range 1...5.o qchisq(1-e, .., ncp=.) did not terminate for small e.(PR#6421 (PR#875))o contrasts() turns a logical variable into a factor. This nowalways has levels c("FALSE", "TRUE") even if only one (ornone) of these occur in the variable.o model.frame()'s lm and glm methods had 'data' and 'na.action'arguments which they ignored and have been removed.o The defaults data=list() in lm() and glm() could never beused and have been removed. glm had na.action=na.fail, againnever used.o tools:::.getInternalS3generics() was omitting all the membersof the S3 group generics, which also accept methods for members.o Some BLASes were returning NA %*% 0 as 0 and some as NA. Nowslower but more careful code is used if NAs are present. (PR#4582)o package.skeleton() no longer generates invalid filenames forcode and help files. Also, care is taken not to generatefilenames that differ only by case.o pairs() now respects axis graphical parameters such ascex.main, font.main and las.o Saving images of packages with namespaces (such as mle) wasnot compressing the image.o When formula.default() returned a terms object, it returned aresult of class c("terms", "formula") with differentsubsetting rules from an object of class "formula".o The standalone Rmath library did not build correctly on systemswith inaccurate log1p.o Specifying asp is now respected in calls like plot(1, 10, asp=1)with zero range on both axes.o outer() called rep() with an argument the generic does nothave, and discarded the class of the answer.o object.size() now returns a real (not integer) answer and socan cope with objects occupying more than 2Gb.o Lookups base:: and ::: were not confining their search to thenamed package/namespace.o qbinom() was returning NaN for prob = 0 or 1 or size = 0 eventhough the result is well-defined. (In part, PR#5900.)o par(mgp)[2] was being interpreted as relative to par(mgp)[3].(PR#6045)o Versioned install was broken both with and without namespaces:no R code was loaded.o methods(), getS3method() and the registration of S3 methods innamespaces were broken if the S3 generic was converted into anS4 generic by setting an S4 method.o Title and copyright holder of the reference manual are now insync with the citation() command.o The validation code for POSIXlt dates and henceseq(, by="DSTdays") now works for large mday values (notjust those in -1000...1000). (PR#6212)o The print() method for data frames now copes with data framescontaining arrays (other than matrices).o texi2dvi() and buildVignettes() use clean=FALSE as defaultbecause the option is not supported on some Solarismachines. For buildVignettes() this makes no difference as ituses an internal cleanup mechanism.o The biplot() method for "prcomp" was not registered nor exported.(PR#6425)o Latex conversion of .Rd files was missing newline before\end{Section} etc which occasionally gave problems, as fixed forsome other \end{Foo} in 1.8.1. (PR#5645)o Work around a glibc bug to make the %Z format usable in strftime().o The glm method for rstandard() was wrongly scaled for cases wheresummary(model)$dispersion != 1.o Calling princomp() with a covariance matrix (rather than alist) failed to predict scores rather than predict NA asintended. (PR#6452)o termplot() is more tolerant of variables not in the data= argument.(PR#6327)o isoreg() could segfault on monotone input sequences. (PR#6494)o Rdconv detected \link{\url{}} only very slowly. (PR#6496)o aov() with Error() term and no intercept incorrectly assignedterms to strata. (PR#6510)o ftable() incorrectly handled arguments named "x". (PR#6541)o vector(), matrix(), array() and their internal equivalentsreport correctly that the number of elements specified was toolarge (rather than reporting it as negative).o Minor copy-paste error in example(names). (PR#6594)o length<-() now works correctly on factors (and is now genericwith a method for factors).o x <- 2^32; x:(x+3) no longer generates an error (but gives aresult of type "double").o pgamma(30, 100, lower=FALSE, log=TRUE) is not quite 0, now.pgamma(x, alph) now only uses a normal approximation foralph > 1e5 instead of alph > 1000. This also improves the accuracyof ppois().o qgamma() now does one or more final Newton steps, increasingaccuracy from around 2e-8 to 3e-16 in some cases. (PR#2214).It allows values p close to 1 not returning Inf, with accuracy for'lower=FALSE', and values close to 0 not returning 0 for'log=TRUE'. These also apply to qchisq(), e.g.,qchisq(1e-13, 4, lower=FALSE) is now finite andqchisq(1e-101, 1) is positive.o gamma(-n) now gives NaN for all negative integers -n.o The Unix version of browseURL() now protects the URL from theshell, for example allowing & and $ to occur in the URL.It was incorrectly attempting to use -remote "openURL()" forunknown browsers.o extractAIC.coxph() works around an inconsistency in the$loglik output from coxph. (PR#6646)o stem() was running into integer overflows with nearly-constantinputs, and scaling badly for constant ones. (Partly PR#6645)o system() under Unix was losing the 8095th char if the outputwas split. (PR#6624)o plot.lm() gave incorrect results if there were zero weights.(PR#6640)o Binary operators warned for inconsistent lengths on vector opvector operations, but not on vector op matrix ones. (PR#6633and more.)Comparison operators did not warn about inconsistent lengthsfor real vectors, but did for integer, logical and charactervectors.o spec.pgram(x, ..., pad, fast, ...) computed the periodogram witha bias (downward) whenever 'pad > 0' (non-default) or 'fast = TRUE'(default) and nextn(n) > n where n = length(x); similarly for'df' (approximate degrees of freedom for chisq).o dgamma(0, a) now gives Inf for a < 1 (instead of NaN), andso does dchisq(0, 2*a, ncp).o pcauchy() is now correct in the extreme tails.o file.copy() did not check that any existing `from' file hadbeen truncated before appending the new contents.o The QC files now check that their file operations succeeded.o replicate() worked by making the supplied expression thebody of an anonymous function(x), leading to a variablecapture issue. Now, function(...) is used instead.o chisq.test(simulate.p.value = TRUE) was returning slightlyincorrect p values, notably p = 0 when the data gave the mostextreme value.o terms.formula(simplify = TRUE) was losing offset terms.Multiple offset terms were not being removed correctly if twoof them appeared first or last in the formula. (PR#6656)o Rd conversion to latex did not add a new line before\end{Section} in more cases than were corrected in 1.8.1.o split.default() dropped NA levels in its internal code butreturned them as NA in all components in the interpreted codefor factors. (PR#6672)o points.formula() had problems if there was a subset argumentand no data argument. (PR#6652)o as.dist() does a bit more checking of its first argument and nowwarns when applied to non-square matrices.o mle() gives a more understandable error message when its 'start'argument is not ok.o All uses of dir.create() check the return value.download.packages() checks that destdir exists and is a directory.o Methods dispatch corrects an error that failed to findmethods for classes that extend sealed classes (class unionsthat contain basic classes, e.g.).o Sweave no longer wraps the output of code chunks withecho=false and results=tex in Schunk environments.o termplot() handles models with missing data better, especiallywith na.action=na.exclude.o 1:2 * 1e-100 now prints with correct number of spaces.o Negative subscripts that were out of range or NA were not handledcorrectly. Mixing negative and NA subscripts is now caught asan error: it was not caught on some platforms and segfaultedon others.o gzfile() connections had trouble at EOF when used on uncompressedfile.o The Unix version of dataentry segfaulted if the `Copy' buttonwas used. (PR#6605)o unlist on lists containing expressions now works (PR#5628)o D(), deriv() and deriv3() now also can deal with gamma and lgamma.o The X11 module can now be built against XFree86 4.4.0 headers (stillwith some warnings).o seq.POSIXt(from, to, by="DSTdays") was shorter than expectedfor rare times in the UK time zone. (PR#4558)o c/rbind() did not support vectors/matrices of mode "list". (PR#6702)o summary() methods for POSIX[cl]t and Date classes coerced thenumber of NAs to a date on printing.o KalmanSmooth would sometimes return NA values with NA inputs.(PR#6738)o fligner.test() worked correctly only if data were already sortedby group levels. (PR#6739)*************************************************** ** 1.8 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.8.1NEW FEATURESo There is now a "Complex" S3 group generic (a side-effect offixing up the corresponding S4 group generic).o help("regex") now gives a description of the regular expressionsused in R.o The startup message now shows the R Foundation as copyrightholder, and includes the R ISBN number and a pointer to the newcitation() function.o The solve() function now uses the `tol' argument for allnon-complex cases. The default tolerance for LINPACK is 1e-7,as before. For LAPACK it currently is .Machine$double.eps butmay be changed in later versions of R.o help.search() now defaults to agrep = FALSE when keyword= isspecified, since no one wants fuzzy matching of categories.o Function texi2dvi() in package tools can be used to compilelatex files from within R, provided the OS has a commandtexi2dvi or texify.o Objects with formal S4 classes saved in pre-1.8 versions andloaded into the current version have incompatible classattributes (no package information). A new function,fixPre1.8() in package methods, will fix the class attributes.See the help for this function.o heatmap() allows Rowv/Colv = NA, suppressing the correspondingdendrogram.o An "antifeature": Tcl 8.0 is now officially unsupported. In 1.8.0it just didn't work. This very old version lacks several featuresthat are needed for the new version of the tcltk package. R willstill build the tcltk package against Tcl 8.0 but the resultingpackage will not load.BUG FIXESo symnum(x) now behaves as documented when length(x) == 0 and useslower.triangular = FALSE for logical arrays.o c() now has a method for "noquote" objects and hence works asexpected.o split(1:10, c(1,2)) no longer gives a spurious warning.o The "Complex" S4 group generic now works.o abbreviate() doesn't get into infinite loops on input that differsonly by leading/trailing spaceo Added check for user interrupt in Rvprintf to allow printing to beinterrupted.o Fixed bug that would cause segfault on protect stack overflow.o crossprod() on matrices with zero extents would return anuninitialized matrix (rather than one filled with zeros).o DF[[i,j]] for a data frame used row j and col i, not as intendedrow i and col j.o Even more user errors in recursive indexing of lists are nowcaught. (PR#4486)o cor(<matrix>, use = "pairwise") gave wrong result in 1.8.0 (only).(PR#4646)o merge.data.frame() could give incorrect names when one of thearguments had only one column. (PR#4299)o Subsetting a one-dimensional array dropped dimensions even whenthey were not of length one. (Related to PR#4110)o The plot() method for `ecdf' objects, plot.ecdf(), now allows toset a `ylab' argument (different from the default).o cor.test(*, method="spearman") gave wrong results `randomly'(because of a wrong type passed to C; PR#4718).o dist() objects with NA's didn't print these, now do. (PR#4866).o regexpr(fixed = TRUE) returned 0-based indices.o df[, length_1_index] <- value did not recycle short rhs. (PR#4820)o median() no longer `works' for odd-length factor variables.o packageStatus() is more robust to failing to contact arepository, and contacts the correct paths in the repositoriesunder Windows.o .setOldIs (methods) contained a typo stopping POSIXct objects (etc)being included in formal classes.o terms() sometimes removed offset() terms incorrectly, since itcounted by variables and not terms. Its "offset" attributewas incorrectly documented as referring to terms notvariables. (Related to PR#4941)o buildVignettes() and pkgVignettes() in package tools are nowdocumented. The call to texi2dvi is wrapped in the newfunction texi2dvi() which also works on Windows.o hclust() was sometimes not finding the correct inter-clusterdistances with non-monotone methods. (PR#4195)o plot.hclust() now tolerates mode changes on dumped objects. (PR#4361)o prompt() no longer insists files are in the current directory.(PR#4978)o filter() did not use init in reverse order as documented. (PR#5017)o contrasts<-() and model.matrix() now have sanity checks thatfactors having at least 2 levels (or one level and a contrastmatrix): model.matrix() gave nonsensical results for 0-levelfactors.o writeChar() could segfault if more characters were requestedthan exist. (PR#5090)o round() and signif() dropped attributes with 0-length inputs,only. (PR#4710)o The default graphics device in the GNOME interface was gtk,which is no longer in the base package. It is now X11.o The print button on the toolbar of the GNOME graphics devicedid not work.o The example code on the man page for TkWidgetcmds had not beenupdated after the change that made tkget (et al.) returntclObj objects, so the "Submit" button didn't work.o Rd conversion to latex did not add a new line before\end{Section} for the section environments, which causedproblems if the last thing in a section was \preformatted{}(and potentially elsewhere).o Under some circumstances mosaicplot() failed if main wassupplied as it was passed on to model.frame.default().o Conversion to POSIXlt (including printing) of POSIXct datesbefore 1902 and after 2038 computed which were leap years from(year-1900) so got some xx00 years wrong.CHANGES IN R VERSION 1.8.0MACOS CHANGESo As from this release there is only one R port for theMacintosh, which runs only on Mac OS X. (The `Carbon' port hasbeen discontinued, and the `Darwin' port is part of the newversion.) The current version can be run either as acommand-line application or as an `Aqua' console. There is a`Quartz' device quartz(), and the download and installation ofboth source and binary packages is supported from the Aquaconsole. Those CRAN and BioC packages which build under Mac OS Xhave binary versions updated daily.USER-VISIBLE CHANGESo The defaults for glm.control(epsilon=1e-8, maxit=25) have beentightened: this will produce more accurate results, slightlyslower.o sub, gsub, grep, regexpr, chartr, tolower, toupper, substr,substring, abbreviate and strsplit now handle missing valuesdifferently from "NA".o Saving data containing name space references no longer warnsabout name spaces possibly being unavailable on load.o On Unix-like systems interrupt signals now set a flag that ischecked periodically rather than calling longjmp from thesignal handler. This is analogous to the behavior on Windows.This reduces responsiveness to interrupts but prevents bugscaused by interrupting computations in a way that leaves thesystem in an inconsistent state. It also reduces the numberof system calls, which can speed up computations on someplatforms and make R more usable with systems like Mosix.CHANGES TO THE LANGUAGEo Error and warning handling has been modified to incorporate aflexible condition handling mechanism. See the onlinedocumentation of 'tryCatch' and 'signalCondition'. Code thatdoes not use these new facilities should remain unaffected.o A triple colon operator can be used to access values of internalvariables in a name space (i.e. a:::b is the value of the internalvariable b in name space a).o Non-syntactic variable names can now be specified by inclusionbetween backticks `Like This`. The deparse() code has beenchanged to output non-syntactical names with this convention,when they occur as operands in expressions. This is controlledby a `backtick' argument, which is by default TRUE forcomposite expressions and FALSE for single symbols. Thisshould give minimal interference with existing code.o Variables in formulae can be quoted by backticks, and suchformulae can be used in the common model-fitting functions.terms.formula() will quote (by backticks) non-syntactic namesin its "term.labels" attribute. [Note that other code usingterms objects may expect syntactic names and/or not acceptquoted names: such code will still work if the new feature isnot used.]NEW FEATURESo New function bquote() does partial substitution like LISP backquote.o capture.output() takes arbitrary connections for `file' argument.o contr.poly() has a new `scores' argument to use as the base setfor the polynomials.o cor() has a new argument `method = c("pearson","spearman","kendall")'as cor.test() did forever. The two rank based measures do work withall three missing value strategies.o New utility function cov2cor() {Cov -> Corr matrix}.o cut.POSIXt() now allows `breaks' to be more general intervalsas allowed for the `by' argument to seq.POSIXt().o data() now has an 'envir' argument.o det() uses an LU decomposition and LAPACK. The `method'argument to det() no longer has any effect.o dev.control() now accepts "enable" as well as "inhibit".(Wishlist PR#3424)o *, - and / work more generally on "difftime" objects, which nowhave a diff() method.o dt(*, ncp = V) is now implemented, thanks to Claus Ekstroem.o dump() only quotes object names in the file where necessary.o eval() of a promise forces the promiseo file.path() now returns an empty character vector if given atleast one zero-length argument.o format() and hence print() make an effort to handle corruptdata frames, with a warning.o format.info() now also works with `nsmall' in analogy withformat.default().o gamma(n) is very slightly more precise for integer n in 11:50.o ? and help() will accept more un-quoted arguments, e.g. NULL.o The "?" operator has new forms for querying documentation onS4 methods. See the online documentation.o New argument frame.plot = axes (== TRUE) for filled.contour().o New argument fixed = TRUE for grep() and regexpr() to avoid theneed to escape strings to match.o grep(x, ..., value = TRUE) preserves names of x.o hist.POSIXt() can now pass arguments to hist.default()o legend() and symbols() now make use of xy.coords() and accepta wider range of coordinate specifications.o Added function library.dynam.unload() to call dyn.unload() ona loaded DLL and tidy up. This is called for all the standardpackages in namespaces with DLLs if their namespaces are unloaded.o lm(singular.ok = FALSE) is now implemented.o Empty lm() and glm() fits are now handled by the normalcode: there are no methods for classes "lm.null" and"glm.null". Zero-rank fits are handled consistently.o make.names() has improvements, and there is a new auxiliaryfunction make.unique(). (Based on code contributed by TomMinka, since converted to a .Internal function.) Inparticular make.names() now recognises that names beginningwith a dot are valid and that reserved words are not.o methods() has a print method which asterisks functions whichare not user-visible. methods(class = "foo") now listsnon-visible functions, and checks that there is a matching generic.o model.matrix() now warns when it removes the response from therhs of the formula: that this happens is now documented on itshelp page.o New option `locatorBell' to control the confirmation beepduring the use of locator() and identify().o New option("scipen") provides some user control over theprinting of numbers in fixed-point or exponential notation.(Contributed by David Brahm.)o plot.formula() now accepts horizontal=TRUE and works correctlywhen boxplots are produced. (Wishlist PR#1207) The code hasbeen much simplified and corrected.o polygon() and rect() now interpret density < 0 or NA to meanfilling (by colour) is desired: this allows filling andshading to be mixed in one call, e.g. from legend().o The predict() methods for classes lm, glm, mlm and lqs take a`na.action' argument that controls how missing values in`newdata' are handled (and defaults to predicting NA).[Previously the value of getOption("na.action") was used andthis by default omitted cases with missing values, even if setto `na.exclude'.]o print.summary.glm() now reports omitted coefficients in thesame way as print.summary.lm(), and both show them as NAs inthe table of coefficients.o print.table() has a new argument `zero.print' and is nowdocumented.o rank(x, na.last = "keep") now preserves NAs in `x', and theargument `ties.method' allows to use non-averaging ranks in thepresence of ties.o read.table()'s 'as.is' argument can be character, naming columnsnot to be converted.o rep() is now a generic function, with default, POSIXct andPOSIXlt methods. For efficiency, the base code uses rep.int()rather than rep() where possible.o New function replicate() for repeated evaluation of expressionand collection of results, wrapping a common use of sapply()for simulation purposes.o rev() is now a generic function, with default and dendrogrammethods.o serialize() and unserialize() functions are available forlow-level serialization to connections.o socketSelect() allows waiting on multiple sockets.o sort(method = "quick", decreasing = TRUE) is now implemented.o sort.list() has methods "quick" (a wrapper for sort(method ="quick", index.return = TRUE) and "radix" (a very fast methodfor small integers). The default "shell" method works fasteron long vectors with many ties.o stripchart() now has `log', `add' and `at' arguments.o strsplit(x, *) now preserves names() but won't work fornon-character `x' anymore {formerly used as.character(x),destroying names(x)}.o textConnection() now has a local argument for use with outputconnections. local = TRUE means the variable containing theoutput is assigned in the frame of the caller.o Using UseMethod() with more than two arguments now gives awarning (as R-lang.texi has long claimed it did).o New function vignette() for viewing or listing vignettes.o which.min(x) and which.max(x) now preserve names.o xy.coords() coerces "POSIXt" objects to "POSIXct", allowinglines etc to added to plot.POSIXlt() plots.o .Machine has a new entry, sizeof.pointer.o .Random.seed is only looked for and stored in the user'sworkspace. Previously the first place a variable of that namewas found on the search path was used.o Subscripting for data.frames has been rationalized:- Using a single argument now ignores any `drop' argument(with a warning). Previously using `drop' inhibited list-likesubscripting.- adf$name <- value now checks for the correct length of`value', replicating a whole number of times if needed.- adf[j] <- value and adf[[j]] <- value did not convertcharacter vectors to factors, but adf[,j] <- value did.Now none do. Nor is a list `value' coerced to a data frame(thereby coercing character elements to factors).- Where replicating the replacement value a whole number oftimes will produce the right number of values, this isalways done (rather than some times but not others).- Replacement list values can include NULL elements.- Subsetting a data frame can no longer produce duplicatecolumn names.- Subsetting with drop=TRUE no longer sometimes dropsdimensions on matrix or data frame columns of the data frame.- Attributes are no longer stripped when replacing part of a column.- Columns added in replacement operations will always benamed, using the names of a list value if appropriate.- as.data.frame.list() did not cope with list names such as`check.rows', and formatting/printing data frames with suchcolumn names now works.- Row names in extraction are still made unique, but withoutforcing them to be syntactic names.- adf[x] <- list() failed if x was of length zero.o Setting dimnames to a factor now coerces to character, as Sdoes. (Earlier versions of R used the internal codes.)o When coercion of a list fails, a meaningful error message is given.o Adding to NULL with [[ ]] generates a list if more than oneelement is added (as S does).o There is a new command-line flag --args that causes the rest ofthe command line to be skipped (but recorded in commandArgs()for further processing).o S4 generic functions and method dispatch have been modified tomake the generic functions more self-contained (e.g., usablein apply-type operations) and potentially to speed dispatch.o The data editor is no longer limited to 65535 rows, and willbe substantially faster for large numbers of columns.o Standalone Rmath now has a get_seed function as requested (PR#3160).o GC timing is not enabled until the first call to gc.time(); itcan be disabled by calling gc.time(FALSE). This can speed upthe garbage collector and reduce system calls on someplatforms.STANDARD PACKAGESo New package 'mle'. This is a simple package to find maximumlikelihood estimates, and perform likelihood profiling andapproximate confidence limits based upon it. A well-behavedlikelihood function is assumed, and it is the responsibilityof the user to gauge the applicability of the asymptotictheory. This package is based on S4 methods and classes.o Changes in package 'mva':- factanal() now returns the test statistic and P-value formerlycomputed in the print method.- heatmap() has many more arguments, partly thanks to WolfgangHuber and Andy Liaw.- Arguments `unit' and `hmin' of plclust() are now implemented.- prcomp() now accepts complex matrices, and there is biplot()method for its output (in the real case).- dendrograms are slightly better documented, methods working with"label", not "text" attribute. New rev() method for dendrograms.- plot.dendrogram() has an explicit `frame.plot' argumentdefaulting to FALSE (instead of an implicit one defaulting to TRUE).o Changes in package 'tcltk':- The package is now in a namespace. To remove it you willnow need to use unloadNamespace("tcltk").- The interface to Tcl has been made much more efficient byevaluating Tcl commands via a vector of Tcl objects ratherthan by constructing the string representation.- An interface to Tcl arrays has been introduced.- as.tclObj() has gained a `drop' argument to resolve anambiguity for vectors of length one.o Changes in package 'tools':- Utilities for testing and listing files, manipulating filepaths, and delimited pattern matching are now exported.- Functions checkAssignFuns(), checkDocArgs() and checkMethods()have been renamed to checkReplaceFuns(), checkDocFiles(), andcheckS3methods, to given better descriptions of what they do.- R itself is now used for analyzing the markup in the \usagesections. Hence in particular, replacement functions or S3replacement methods are no longer ignored.- checkDocFiles() now also determines 'over-documented' argumentswhich are given in the \arguments section but not in \usage.- checkDocStyle() and checkS3Methods() now know about internal S3generics and S3 group generics.- S4 classes and methods are included in the QC tests.Warnings will be issued from undoc() for classes andmethods defined but not documented. Default methodsautomatically generated from nongeneric functions do notneed to be documented.- New (experimental) functions codocClasses() and codocData()for code/documentation consistency checking for S4 classes anddata sets.o Changes in package 'ts':- arima.sim() now checks for inconsistent order specification(as requested in PR#3495: it was previously documented not to).- decompose() has a new argument `filter'.- HoltWinters() has new arguments `optim.start' and`optim.control', and returns more components in the fittedvalues. The plot method allows `ylim' to be set.- plot.ts() has a new argument `nc' controlling the number ofcolumns (with default the old behaviour for plot.mts).- StructTS() now allows the first value of the series to bemissing (although it is better to omit leading NAs). (PR#3990)USING PACKAGESo library() has a pos argument, controlling where the package isattached (defaulting to pos=2 as before).o require() now maintains a list of required packages in thetoplevel environment (typically, .GlobalEnv). Two featuresuse this: detach() now warns if a package is detached that isrequired by an attached package, and packages that installwith saved images no longer need to use require() in the.First as well as in the main source.o Packages with name spaces can now be installed using --save.o Packages that use S4 classes and methods should now work withor without saved images (saved images are still recommendedfor efficiency), writing setMethod(), etc. calls with thedefault for argument `where'. The topenv() function andsys.source() have been changed correspondingly. See theonline help.o Users can specify in the DESCRIPTION file the collation orderfor files in the R source directory of a package.DOCUMENTATION CHANGESo Changes in R documentation format:- New logical markup commands for emphasizing (\strong) andquoting (\sQuote and \dQuote) text, for indicating the usageof an S4 method (\S4method), and for indicating specific kindsof text (\acronym, \cite, \command, \dfn, \env, \kbd, \option,\pkg, \samp, \var).- New markup \preformatted for pre-formatted blocks of text(like \example but within another section). (Based on acontribution by Greg Warnes.)- New markup \concept for concept index entries for use byhelp.search().o Rdconv now produces more informative output from the special\method{GENERIC}{CLASS} markup for indicating the usage of S3methods, providing the CLASS info in a comment.o \dontrun sections are now marked within comments in theuser-readable versions of the converted help pages.o \dontshow is now the preferred name for \testonly.INSTALLATION CHANGESo The zlib code in the sources is used unless the externalversion found is at least version 1.1.4 (up from 1.1.3).o The regression checks now have to be passed exactly, exceptthose depending on recommended packages (which cannot beassumed to be present).o The target make check-all now runs R CMD check on all therecommended packages (and not just runs their examples).o There are new macros DYLIB_* for building dynamic libraries,and these are used for the dynamic Rmath library (which waspreviously built as a shared object).o If a system function log1p is found, it is tested for accuracyand if inadequate the substitute function in src/nmath isused, with name remapped to Rlog1p. (Apparently needed onOpenBSD/NetBSD.)C-LEVEL FACILITIESo There is a new installed header file R_ext/Parse.h whichallows R_ParseVector to be called by those writing extensions.(Note that the interface is changed from that used in theunexported header Parse.h in earlier versions, and is notguaranteed to remain unchanged.)o The header R_ext/Mathlib.h has been removed. It was replaced byRmath.h in R 1.2.0.o PREXPR has been replaced by two macros, PREXPR for obtaining theexpression and PRCODE for obtaining the code for use in eval.The macro BODY_EXPR has been added for use with closures.For a closure with a byte compiled body, the macro BODY_EXPRreturns the expression that was compiled; if the body is notcompiled then the body is returned. This is to support bytecompilation.o Internal support for executing byte compiled code has been added.A compiler for producing byte compiled code will be made availableseparately and should become part of a future R release.o On Unix-like systems calls to the popen() and system() C libraryfunctions now go through R_popen and R_system. On Mac OS X thesesuspend SIGALRM interrupts around the library call. (Related toPR#1140.)UTILITIESo R CMD check accepts "ORPHANED" as package maintainer. Packagemaintainers can now officially orphan a package, i.e., resignfrom maintaining a package.o R CMD INSTALL (Unix only) is now 'safe': if the attempt toinstall a package fails, leftovers are removed. If the packagewas already installed, the old version is restored.o R CMD build excludes possible (obsolete) data and vignetteindices in DCF format (and hence also no longer rebuilds them).o R CMD check now tests whether file names are valid across filesystems and supported operating system platforms. There is somesupport for code/documentation consistency checking for datasets and S4 classes. Replacement functions and S3 methods in\usage sections are no longer ignored.o R CMD Rdindex has been removed.DEPRECATED & DEFUNCTo The assignment operator `_' has been removed.o printNoClass() is defunct.o The classic Mac OS port is no longer supported, and its fileshave been removed from the sources.o The deprecated argument 'white' of parse() has been removed.o Methods pacf/plot.mts() have been removed and their functionalityincorporated into pacf.default/plot.ts().o print.coefmat() is deprecated in favour of printCoefmat()(which is identical apart from the default for na.print whichis changed from "" to "NA", and better handling of the 0-rankcase where all coefficients are missing).o codes() and codes<-() are deprecated, as almost all usesmisunderstood what they actually do.o The use of multi-argument return() calls is deprecated: use a(named) list instead.o anovalist.lm (replaced in 1.2.0) is now deprecated.o - and Ops methods for POSIX[cl]t objects are removed: thePOSIXt methods have been used since 1.3.0.o glm.fit.null(), lm.fit.null() and lm.wfit.null() are deprecated.o Classes "lm.null" and "glm.null" are deprecated and all of theirmethods have been removed.o Method weights.lm(), a copy of weights.default(), has been removed.o print.atomic() is now deprecated.o The back-compatibility entry point Rf_log1p in standaloneRmath has been removed.BUG FIXESo ARMAacf() sometimes gave too many results or failed if `lag.max'was used.o termplot() with a subset of terms now gives correct partial residualso Functions anova.glm(), contrasts(), getS3method(), glm() andmake.tables() were applying get() without asking for afunction and/or not starting the search in the environment ofthe caller.o as.data.frame.matrix() ignored the `row.names' argument.o as.data.frame.list(optional = TRUE) was converting names, andhence data.frame(list(...), check.names = FALSE) was. (PR#3280)o as.dist(m) {mva} now obeys `diag=TRUE' or `upper=TRUE' in all cases.o as.double(list()) etc was regarded as an error, because of abug in isVectorizable.o On some platforms the wday component of the result ofas.POSIXlt() was corrupted when trying to guess the DST offsetat dates the OS was unable to handle.o ave(x, g) didn't work when `g' had unused levels.o biplot.default() allows xlim and ylim to be set. (PR#3168)o bgroup with a null (.) delimiter was setting font to Greek. (PR#3099)o body() and formals() were looking for named functions indifferent places: they now both look starting at theenvironment in which they are called. Several documentationerrors for these functions have been corrected.o boxplot() was ignoring cex.axis. (PR#2628)o cut.POSIXt() now passes on ... to cut.default(), as documented.o crossprod() now works for 1d arrays with unnamed dimnames (PR#4092).o data() sometimes failed with multiple files, as the pathsvariable got corrupted.o data.frame() failed with a nonsensical error message if itgrabbed row names from an argument that was subsequentlyrecycled. Now they are discarded, with a warning.o data.matrix() was documented to replace factors by theircodes, but in fact re-coded into the alphabetical ordering ofthe levels.o decompose() with even frequency used an asymmetric movingaverage window.o demo() was using `topic' as a regexp rather than an exact match.o dotchart() now does recycle the `color' argument and betterdocuments the `bg' one (PR#4343).o getAnywhere() didn't not correctly check for S3 methods, whenthe generic or the class name contains a "." (PR#4275).o file.copy() ignored the overwrite argument. (PR#3529)o filter(method="recursive") was unnecessarily requiring thetime series to be longer than the filter.o format(*, nsmall = m) with m > 0 now returns exponential formatless often.o get() and exists() were ignoring the `mode' argument forvariables in base. The error message for get() now mentionsthe mode requested if not "any". A bug in setting the NAMEDfield in do_get was fixed.o getS3method(f, cl, optional=TRUE) now returns NULL if `f' doesnot exist.o HoltWinters() would segfault if only gamma was optimized, andnot converge if gamma=0 and seasonal="mult".o hyperref.cfg now contains definitions for colors it uses.o identify.default() detects zero-length arguments. (PR#4057)o legend() allows shading without filling again.o legend(x, y, leg) doesn't triple `leg' anymore when it is a call.o Corrected many problems with 0-rank (but not necessarily emptymodel) lm() and glm() fits.o lm.influence() now handles 0-rank models, and names its outputappropriately. It also ensures that hat values are not greaterthan one, and rounds values within rounding error of one.o The `method' argument to loess() did not work. (PR#3332)o lsfit() was returning incorrect residuals for 0-rank fits.o methods("$") and methods("$<-") were failing to find methods.o methods() and getS3method() find methods if the genericdispatches on a name other than its own. (The cases ofcoefficients() and fitted.values() were fixed in 1.7.1.)o model.matrix.default() was throwing an error on 0-term models,but now handles them correctly.o Printing `nls' objects misbehaved when `data' was a compositeexpression.o .NotYetImplemented() gave "Error in .NotYet...(): .."o numericDeriv() was failing if the first argument was a namerather than a call. (PR#3746)o pacf() was failing if called on a one-column matrix.o paste() applied to 0-length vectors gave "" not a 0-length vector.o The length of a string specification of par(lty=) is now checked: itshould be 2, 4, 6 or 8.o Using lty=as.integer(NA) and as.double(NA) were being acceptedbut giving nonsensical results. Those are not documentedvalid values for lty. (PR#3217)o Erroneously calling par(new=TRUE) with no plot was not caughtand so could result in invalid graphics files. (PR#4037)o par(tck=) was being interpreted incorrectly. It is nowdocumented in the same way as S, and now behaves asdocumented. (PR#3504)o plclust() [and hence plot.hclust()] sometimes now uses correct `ylim'salso in unusual cases. (PR#4197)o plot.POSIX[cl]t no longer passes col, lty, lwd to axis.POSIXt.o The png(), jpeg(), png() and win.metafile() devices nowenforce the length limit on the filename. (PR#3466)o pnorm(x, 1, 0) does not give NaN anymore;also, pnorm(x, m, s=Inf) == lim{s -> Inf} pnorm(x,m,s).Similar changes for dnorm(), cf PR#1218.o On some machines the internal rounding used in postscript() wasimperfect, causing unnecessarily verbose output (-0.00 instead of0) and problems with make check.o qqnorm()'s result now keeps NAs from its input. (PR#3750)o rank() sometimes preserved and sometimes dropped names.o readBin(what = "foo") didn't convert `what' to its type. (PR#4043)o reorder.dendrogram() now properly resets the "midpoint" attributessuch that reorder()ed dendrograms now plot properly.o rmultinom(1,100, c(3, 4, 2, 0,0))[3] was NA. (PR#4431)o sapply() for matrix result does not return list(NULL,NULL) dimnamesanymore.o scan() now interprets quoting in fields to be skipped. (PR#4128)o seq.POSIXt(from, to, by="DSTday") was failing or calculatingthe length incorrectly.o sort() and unique.default() were failing on 0-level factors.o step() adds a fuzz for reduction in AIC for 0-df terms. (PR#3491)o str(x) gives better output when x is of mode "(". Its "dendrogram"method obeys the `give.attr' argument which now defaults to FALSE.o strwidth(f) and strheight(f) could seg.fault when `f' was afunction. The fix [to C-level coerceVector()] now gives an errorinstead of passing through. This may catch other potentialproblems.o Sweave() reports the chunk number rather than the driver call whena try error gets caught.o trunc.POSIXt(x) for 0-length x does not return invalid structuresanymore. (PR#3763).o warnings() now returns NULL instead of an error when no warningshave occured yet. (PR#4389)o Using write.table() setting the `dec' argument and with nonumeric columns failed. (PR#3532)o $<- did not duplicate when it needed to.o Recursive indexing of lists had too little error-checking.(related to PR#3324)o Removed warning about names in persistent strings when anamespace is saved.o Fixed some malformed error messages in the methods package.o pipes were not opening properly when profiling on a Mac OS.(PR#1140)o Lapack error messages (PR#3494) and call to DGEQP3 (PR#2867) arecorrected.o Rd conversion was limiting a file to 1000 pairs of braces,without any warning. Now the limit is 10000, with a warning.(PR#3400)o In the tcltk package, the tkimage.*() commands were definednonsensically as widget commands. They have been redefined to bemore useful now.o Registered group generics were not being used. (PR#3536)o Subsetting data frames did not always correctly detect thatnon-existent columns were specified.o There are many more checks for over-running internal buffers,almost always reporting errors.o Added some buffer overflow checking in gram.y.o Internals for complex assignment did not check that function namewas a symbol, which could cause a segfault.o Fixed bug in S4 methods dispatch that made local variables in thegeneric visible when executing the body of a method, thus violatinglexical scope.*************************************************** ** 1.7 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.7.1NEW FEATURESo The help pages give appropriate references to the Blue,White or Green books for functions based on the descriptionsof S functions given there. (E&OE)o Function getAnywhere() can find non-exported objects, fornamespaces or registered methods.DEPRECATED & DEFUNCTo The (unimplemented) argument 'white' of parse() is deprecated.o The tkfilefind demo in the tcltk library is deprecated, sinceit never worked well, and apparently not at all with Tcl/Tk 8.4.BUG FIXESo print.table() used too much white space in some cases in 1.7.0.o selectMethod() failed if `f' was a non-generic andoptional=TRUE, and gave a confusing error message ifoptional=FALSE.o pchisq(*, ncp) and qchisq(*, ncp) work in more cases for large ncpor quantile and give warning or error messages otherwise.o str(x) now also works when x is an "externalptr" (or "weakref").o rbeta(), rf(), and rt() now support infinite parameter values;other distributions return NaN instead of NA for such.o Redefining a class is now safer if the new definitiongenerates an error (previously some invalid metadata could beleft behind).o A number of errors are now caught in setClass() thatpreviously either went unchecked or waited until new() toappear:- classes may not contain themselves, directly or indirectly;- classes appearing either as slots or as superclasses mustthemselves be defined;- slot names (direct or inherited) must be unique.In related changes, prototype() now works as documented, and is therecommended way to provide prototype objects.o Sorting an ordered factor would return an unordered one.This caused some trouble with panel.superpose (PR#974).o methods() could return duplicates if a method in a namespacewas both exported and registered.o The internal zip.unpack() could crash if more than 500 fileswere to be extracted. (PR#2818)o The "r+" and "r+b" modes of opening file connections disallowedwriting.o library() now warns the user if the chosen package namedoesn't match the internal package name, and corrects theerror. (PR#2816)o qr(LAPACK=TRUE) (and qr for complex arguments) might have failedto pivot for rank-deficient inputs. (PR#2867)o Only re-mapped symbols are exported by regex.o, to avoidproblems with embedded R on RedHat 9.o arima() did not set transform.pars to FALSE if AR parameterswere fixed, although it claimed to.o pnorm() was slower than necessary in the outer tails in somecases due to a typo in the improvements from PR#699. (PR#2883)o setGeneric() and setMethod() now catch some examples where thegeneric and the method have different argument lists; theevaluator checks for internal consistency of these argument lists.o expand.grid(x) {the rare case of one argument} now treats factorlevels as in the typical case of two or more arguments.o Some implicit coercions to lists could cause segfaults, e.g.x <- matrix(nrow=20000, ncol=20); x$any <- numeric(0)due to a PROTECT bug. (PR#2923)o The replacement functions for colnames() and rownames() did notwork for arrays with more than two dimensions. They couldcreate dimnames of the form list(NULL, NULL) rather thanremove the dimnames attribute.o termplot() gave incorrect answers with rug=TRUE orpartial=TRUE for factors whose levels were not inlexicographical order.o A serious performance flaw in as() computations was fixed (themethods were not being cached properly.)o model.frame(~1, data) always returned 1 row. (PR#2958)o The data editor was truncating objects to 65535 rows. Protem, editing objects with more than 65535 rows is an error,and objects cannot be extended beyond that row. This restrictionwill be removed in 1.8.0. (PR#2962)o A bug could produce apparent loops in formal method selectionwhen inheritance was restricted (used for the as() function).A related problem sometimes broke attaching a package that hadmethods for basic functions, such as names(), used in methodselection.o Empty expressions as in return(x,) could generate subsequentsegfaults: they are now errors. (PR#2880)o The Kinderman-Ramage Normal Random Generator had severalproblems leading to not-quite normally distributed variates(PR#2846). One problem was traced to an error in the original1976 JASA paper! Thanks to Josef Leydold and his team forinvestigating this. The old generator has been retained forreproducibility of older results, under the name"Buggy Kinderman-Ramage". A warning is issued if you select it(also indirectly via RNGversion()).o promptMethods() now puts the \alias lines for methods in thenormal place, near the top of the file, and quotes classnames in signatures.o getS3method() and methods() were not finding methods forcoefficients() and fitted.values() (which dispatch on "coef"and "fitted" respectively).o scan() (and hence read.table) was not finding matches forseparator chars with the upper bit set. (PR#3035)o lm.(w)fit failed if the fit had rank 0.o lqs() did not report explicitly that it had failed if allsamples gave singular fits.o predict.lm(*, se=TRUE) {w/ weights, w/o newdata} now gives correctSE's. (PR#3043)o cor.test(x, y, method="spearman") now also works forlength(x) > 1290.o Matrices were printed mis-aligned if right=TRUE and na.printwas specified. (PR#3058)o R CMD check gives now a clearer message when latex produceserrors on the package manual. (PR#3070)o isSeekable() was incorrectly returning FALSE on all file connections.o tkpager() wasn't quite using its title and header arguments inthe way prescribed by file.show()o legend(*, pch=p, lty=l) now works better when `p' or `l' haveNAs.o All braces in regular expressions used by Sweave() are nowescaped by a backslash.o unloadNamespace() failed because getNamespaceImports() now coerces astring argument to a name space.o deriv3 gave incorrect Hessians for some very simpleexpressions such as expression(x*y) (since the comments in theC code were incorrect). (PR#2577)o power.t.test(..., delta=NULL,alternative='two.sided') failed. (PR#2993)o Lines on postscript() plots with thousands of segments mighthave been plotted inaccurately in 1.7.0. (PR#3132)Solid lines in postscript() output are split into groups of 1000segments to help some PostScript interpreters (typically oldlevel-1 interpreters).o cut.POSIXt failed when the breaks were date/time objects. (PR#3181)o Usage of methods in dist.Rd is now correctly documented(as.matrix.dist() is not an exported symbol).o The predict() method for ar fits was not retrieving the seriesfrom the parent environment.o eigen() and La.eigen() were not returning a matrix ofeigenvectors for a 1x1 input.o hsv() and rgb() now return character(0) when one of their args haslength 0. This also fixes terrain.color(1). (PR#3233)o [[<-.data.frame checked if a replacment was too short, but notif it was too long. (related to PR#3229)o qt(x, df) was quite inaccurate for df=1+epsilon; it is now much moreaccurate for df in (1,2) and more precise for other df. (PR#2991)o qbeta() now has slightly improved C code in two places, as suggestedin the 2nd followup to PR#2894.CHANGES IN R VERSION 1.7.0USER-VISIBLE CHANGESo solve(), chol(), eigen() and svd() now use LAPACK routinesunless a new back-compatibility option is turned on. Thesigns and normalization of eigen/singular vectors may changefrom earlier versions.o The `methods', `modreg', `mva', `nls' and `ts' packagesare now attached by default at startup (in addition to `ctest').The option "defaultPackages" has been added which contains theinitial 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) givesa non-null class, and UseMethod() always dispatches on theclass that class() returns. This means that methods likefoo.matrix and foo.integer will be used. Functions oldClass()and oldClass<-() get and set the "class" attribute as Rwithout `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 Rversion if reproducibility is required.o Namespaces can now be defined for packages other than `base':see `Writing R Extensions'. This hides some internal objectsand changes the search path from objects in a namespace. Allthe 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 theoriginal form rather than the equivalent simplified form(which may have reordered the terms): the results are nowmuch closer to those of S.o The tables for plotmath, Hershey and Japanese have been movedfrom the help pages (example(plotmath) etc) to demo(plotmath) etc.o Errors and warnings are sent to stderr not stdout oncommand-line versions of R (Unix and Windows).o The R_X11 module is no longer loaded until it is needed, sodo test that x11() works in a new Unix-alike R installation.NEW FEATURESo if() and while() give a warning if called with a vector condition.o Installed packages under Unix without compiled code are nolonger stamped with the platform and can be copied to otherUnix-alike platforms (but not to other OSes because ofpotential problems with line endings and OS-specific help files).o The internal random number generators will now never returnvalues of 0 or 1 for runif. This might affect simulationoutput in extremely rare cases. Note that this is notguaranteed for user-supplied random-number generators, norwhen the standalone Rmath library is used.o When assigning names to a vector, a value that is too short ispadded by character NAs. (Wishlist part of PR#2358)o It is now recommended to use the 'SystemRequirements:' field inthe DESCRIPTION file for specifying dependencies external to theR system.o Output text connections no longer have a line-length limit.o On platforms where vsnprintf does not return the needed buffersize the output line-length limit for fifo(), gzfile() andbzfile() has been raised from 10k to 100k chars.o The Math group generic does not check the number of argumentssupplied before dispatch: it used to if the default method hadone 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 nowimplemented (interpreted as if the lhs was a matrix).o Recursive indexing of lists is allowed, so x[[c(4,2)]] isshorthand for x[[4]][[2]] etc. (Wishlist PR#1588)o Most of the time series functions now check explicitly for anumeric time series, rather than fail at a later stage.o The postscript output makes use of relative moves, and so issomewhat more compact.o %*% and crossprod() for complex arguments make use of BLASroutines 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 tobe set (without partially matching to `xlabs' and `ylabs').(Thanks to Uwe Ligges.)o New function capture.output() to send printed output from an expressionto 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 inpackage MASS, which has `glm' and `nls' methods).o New function constrOptim() for optimisation under linear inequalityconstraints.o Add `difftime' subscript method and methods for the groupgenerics. (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 namedobjects now starts by default in the environment from whichdump() is called.o The edit.matrix() and edit.data.frame() editors can now handlelogical data.o New argument `local' for example() (suggested by Andy Liaw).o New function file.symlink() to create symbolic file linkswhere 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() andgetS3method() to facilitate developing code in packages withnamespaces.o glm() now accepts `etastart' and `mustart' as alternative waysto 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 fromsuitable connections.o help.search() can now reliably match individual aliases andkeywords, provided that all packages searched were installedusing R 1.7.0 or newer.o hist.default() now returns the nominal break points, not thoseadjusted for numerical tolerances.To guard against unthinking use, `include.lowest' inhist.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 fromJohn Fox' car package.o interaction.plot() has several new arguments, and the legendis 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 errormessages rather than LAPACK error codes.o legend() has a new `plot' argument. Setting it `FALSE' givessize information without plotting (suggested by U.Ligges).o library() was changed so that when the methods package isattached it no longer complains about formal generic functionsnot specific to the library.o list.files()/dir() have a new argument `recursive'.o lm.influence() has a new `do.coef' argument allowing *not* tocompute casewise changed coefficients. This makes plot.lm() muchquicker for large data sets.o load() now returns invisibly a character vector of the namesof the objects which were restored.o New convenience function loadURL() to allow loading data filesfrom URLs (requested by Frank Harrell).o New function mapply(), a multivariate lapply().o New function md5sum() in package tools to calculate MD5checksums 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, andknows 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 detectedand ignored with a warning. This avoids improperly closingsome types of connections if they are opened repeatedly.o optim(method = "SANN") can now cover combinatorial optimizationby supplying a move function as the `gr' argument (contributedby Adrian Trapletti).o PDF files produced by pdf() have more extensive informationfields, including the version of R that produced them.o On Unix(-alike) systems the default PDF viewer is now determinedduring configuration, and available as the 'pdfviewer' option.o pie(...) has always accepted graphical pars but only passedthem on to title(). Now pie(, cex=1.5) works.o plot.dendrogram (`mva' package) now draws leaf labels if presentby 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 thetwo-tailed case.o power.t.test() and power.prop.test() now have a `strict'argument that includes rejections in the "wrong tail" in thepower calculation. (Based in part on code suggested by UlrichHalekoh.)o prcomp() is now fast for n x m inputs with m >> n.o princomp() no longer allows the use of more variables thanunits: use prcomp() instead.o princomp.formula() now has principal argument `formula', soupdate() can be used.o Printing an object with attributes now dispatches on theclass(es) of the attributes. See ?print.default for the fineprint. (PR#2506)o print.matrix() and prmatrix() are now separate functions.prmatrix() is the old S-compatible function, andprint.matrix() is a proper print method, currently identicalto 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, butsymbolic.cor can be passed to the print methods from thesummary methods. print.summary.{lm,glm} print correlations to2 decimal places, and the symbolic printout avoids abbreviatinglabels.o If a prompt() method is called with 'filename' as 'NA', alist-style representation of the documentation shell generatedis returned. New function promptData() for documenting objectsas 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 theresults can be used by the helper routines qr.coef(), qr.qy()and qr.qty(). The LAPACK-using versions may be much fasterfor large matrices (using an optimized BLAS) but are lessflexible.o QR objects now have class "qr", and solve.qr() is now just themethod for solve() for the class.o New function r2dtable() for generating random samples of two-waytables with given marginals using Patefield's algorithm.o rchisq() now has a non-centrality parameter `ncp', and there's aC 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 witha C API.o New function runmed() for fast runnning medians (`modreg' package).o New function slice.index() for identifying indexes with respectto 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 stepfunction construction.o str() now shows ordered factors different from unordered ones.It also differentiates "NA" and as.character(NA), also for factorlevels.o symnum() has a new logical argument `abbr.colnames'.o summary(<logical>) now mentions NA's as suggested byGöran Broström.o summaryRprof() now prints times with a precision appropriateto 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 byMichael Friendly).o The tempfile() function now takes an optional second argumentgiving the directory name.o The ordering of terms for terms.formula(keep.order=FALSE) isnow defined on the help page and used consistently, so thatrepeated calls will not alter the ordering (which is whydelete.response() was failing: see the bug fixes). Theformula 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 sodoes factor().o Package tcltk now allows return values from the R side to theTcl side in callbacks and the R_eval command. If the returnvalue 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 tcltkpackage is provided. Currently, little more than a proof of concept.It can be started by calling "R -g Tk" (this may change in laterversions) or by evaluating tkStartGUI(). Only Unix-like systemsfor now. It is not too stable at this point; in particular, signalhandling is not working properly.o Changes to support name spaces:- Placing base in a name space can no longer be disabled bydefining the environment variable R_NO_BASE_NAMESPACE.- New function topenv() to determine the nearest top levelenvironment (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 thecorresponding argument to setClass or setMethod. Newfunctions isSealedClass() and isSealedMethod() test sealing.o packages can now be loaded with version numbers. This allowsfor multiple versions of files to be installed (and potentiallyloaded). Some serious testing will be going on, but it shouldhave no effect unless specifically asked for.INSTALLATION CHANGESo TITLE files in packages are no longer used, the Title fieldin the DESCRIPTION file being preferred. TITLE files will beignored in both installed packages and source packages.o When searching for a Fortran 77 compiler, configure by defaultnow also looks for Fujitsu's frt and Compaq's fort, but nolonger for cf77 and cft77.o Configure checks that mixed C/Fortran code can be run beforechecking compatibility on ints and doubles: the latter testwas sometimes failing because the Fortran libraries were notfound.o PCRE and bzip2 are built from versions in the R sources if theappropriate library is not found.o New configure option --with-lapack to allow high-performanceLAPACK libraries to be used: a generic LAPACK library will beused 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 theselibraries to be avoided if they are unsuitable.o If the precious variable R_BROWSER is set at configure timeit overrides the automatic selection of the default browser.It should be set to the full path unless the browser appearsat 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 configurescript.o Configure provides a more comprehensive summary of its results.o Index generation now happens when installing source packagesusing R code in package tools. An existing 'INDEX' file is usedas is; otherwise, it is automatically generated from the \nameand \title entries in the Rd files. Data, demo and vignetteindices are computed from all available files of the respectivekind, 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 Rdcontents data base, are serialized as R objects in the 'Meta'subdirectory of the top-level package directory, allowing forfaster and more reliable index-based computations (e.g., inhelp.search()). For vignettes an HTML index is generatedand linked into the HTML help system.o The Rd contents data base is now computed when installing sourcepackages using R code in package tools. The information isrepresented as a data frame without collapsing the aliases andkeywords, and serialized as an R object. (The 'CONTENTS' filein Debian Control Format is still written, as it is used by theHTML search engine.)o A NAMESPACE file in root directory of a source package is copiedto the root of the package installation directory. Attempting toinstall a package with a NAMESPACE file using --save signals anerror; this is a temporary measure.o The defaults for configure for Darwin systems is--with-blas='-framework vecLib' --with-lapack --with-aquathat by default builds R as a framework and installs it in/Library/Frameworks as R.framework. Then, make install justinstalls the R.framework in /Library/Frameworks unless specifiedat configure time using the -enable-R-framework=[DIR] or usingthe --prefix flag at installation time.DEPRECATED & DEFUNCTo The assignment operator `_' will be removed in the nextrelease and users are now warned on every usage: you may even seemultiple warnings for each usage.If environment variable R_NO_UNDERLINE is set to anything ofpositive 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() havebeen 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 replacedby class() and class<-(); they were internal support functionsfor use by package methods.o The use of SIGUSR2 to quit a running R process under Unix isdeprecated, the signal may need to be reclaimed for otherpurposes.UTILITIESo R CMD check more compactly displays the tests of DESCRIPTIONmeta-information. It now reports demos and vignettes withoutavailable index information. Unless installation tests areskipped, checking is aborted if the package dependencies cannotbe resolved at run time. Rd files are now also explicitlychecked for empty \name and \title entries. The examples arealways run with T and F redefined to give an error if usedinstead of TRUE and FALSE.o The Perl code to build help now removes an existing examplefile 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 ofeach chunk in an Schunk environment. This allows to fix somevertical spacing problems when using the latex class slides.C-LEVEL FACILITIESo A full double-precision LAPACK shared library is madeavailable as -lRlapack. To use this include$(LAPACK_LIBS) $(BLAS_LIBS) in PKG_LIBS.o Header file R_ext/Lapack.h added. C declarations of BLASroutines moved to R_ext/BLAS.h and included in R_ext/Applic.hand R_ext/Linpack.h for backward compatibility.o R will automatically call initialization and unload routines, ifpresent, in shared libraries/DLLs during dyn.load() anddyn.unload() calls. The routines are named R_init_<dll name>and R_unload_<dll name>, respectively. See the Writing RExtensions Manual for more information.o Routines exported directly from the R executable for use with.C(), .Call(), .Fortran() and .External() are now accessed viathe registration mechanism (optionally) used by packages. TheROUTINES file (in src/appl/) and associated scripts togenerate 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 bydefining STRICT_R_HEADERS and/or R_NO_REMAP -- see `Writing RExtensions' for details.o New entry point R_GetX11Image and formerly undocumentedptr_R_GetX11Image are in new header R_ext/GetX11Image. Theseare used by package tkrplot.BUG FIXESo The redefinition of the internal do_dataentry by both the aqua and X11modules, casued a bus error when launching R without the --gui=aqua optionunder X11 using a version of R built to use the aqua module. This hasnow been fixed. (PR#6438)o Sys.sleep() on Unix was having trouble with waits of less than 0.5so The fix to PR#2396 broke read.table() on files with CR lineendings. (PR#2469) Separate problem with this on Carbon Mac OSbuild fixed as well.o Converting Sweave files to noweb syntax using SweaveSyntConv()was broken.o Printing numbers near the minimum could get the number ofsignificant figures wrong due to underflow: for example 4e-308might 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 longvectors. Also added tests for numeric inputs, as per the helppage. (PR#2453)o Printing unquoted character vectors containing escapecharacters was computing the wrong length and hencemisaligning names. This was due to a bug in Rstrlen whichmight 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 documentedto allow only one link, which has not been true in R for atleast four years.o prmatrix() forced conversion to character if `na.print' wasused, 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 smallas is advisable on Linux. Now the interval is forced to be atleast one clock tick.o summary.data.frame() was not giving interpretable results whenthe data frame contained a data frame as a column. (PR#1891)o delete.response() might re-order the rhs terms so predictionmight 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 ifthe array had dimnames. (PR#2507)o If the call to data.frame() included 0-row arguments, it triedto replicate them to the maximum number of rows, and failed ifthis was 1 or more.o replicate() now understands data frames to which na.omit() hasbeen 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 aboutthe range.o tcltk was using deprecated internals of the Tcl library whenaccessing error messages. Not likely to be a user-visiblechange.o The automatic search for BLAS libs now tries Sun's libsunperfthe 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 somewhatbetter if called from a function.o page() was searching from the wrong environment, and sosearching 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 butconverted 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 ifmethod = "constant". stepfun(), ecdf() and plot.stepfun() do soas well.o AIC.lm/default was failing if multiple objects and k werespecified. (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, apromise, even though it was documented to have no value.As a result some packages (e.g. nlme) were loading packagesthey 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 methodsgenerated by setIs have been fixed.- more thorough tests & informative messages for invalid`def' arguments to setGeneric- setGeneric will now create the generic function even whena generic of the same name already exists (it does issuea 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 xhad 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 thehelp file: previously whether foo.R or foo.csv was used waslocale-dependent.o sys.function() now returns the actual function being evaluated inthe specified frame rather than one inferred from the call.o match.call() now uses the definition of the actual function beingevaluated rather than one inferred from the call.o abbreviate(*, dot = TRUE) now only adds a "." where abbreviationsdid happen.o Changing timezones in the POSIXt functions was not working onsome Linux systems, and this has been corrected.o ks.test() in package ctest had numerical problems in the lowertail 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" ignoredthe units.o rank(c("B", NA)) no longer returns character.o reference to by() added in ?tapplyo ?lm describes what happens with matrix responseo The X11 device has improved event handling. In particular itused to often miss the last of a series of resize events.o lm.influence() and related functions now work again for themultivariate 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 henceresiduals(foo, type = "partial") now work for lm and glm objectswith weights zero. Further, model.matrix() is now only called once.o R CMD config now works correctly when called from a Makefileusing 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 columnand 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 cycleother 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@csiro.au>)o Corrected MacRoman encoding for Icircumflex etc.*************************************************** ** 1.6 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.6.2BUG FIXESo plot.stepfun() now obeys a `ylim=.' specification.o removeClass() does a better job of removing inheritanceinformation.o setIs() will not allow mismatched representations between twoclasses (without an explicit coerce method).o The code underlying polygon drawing contained a memory leak.This showed up in persp, but did not affect other graphicsfunctions. It is now possible to draw big DEMs.o logLik.nls() gave wrong df. (PR#2295)o rbind() with a mixture of data frames and matrices treated thematrices as vectors. (PR#2266)o stripchart(method="stack") was not handling missing values. (PR#2018)o Arithmetic functions such as log() lost the object bit fromclassed objects if coercion was needed. (PR#2315)o exp_rand would go into an infinite loop if unif_rand returned 0.o formatC(x, format="fg") could return exponential format ifrounding pushed x over a positive power of 10. (PR#2299)o attr(x, foo) used partial matching for `foo' (even though notdocumented to do so), and failed to find `foo' if there weretwo or more partial matches before the exact match in the listof attributes.o Rdconv now creates direct HTML hyperlinks when linking todocumentation in the same package. The code now ensures thatlinks which can be resolved within the package are so resolved,even when there are possible resolutions in other packages.o If readBin(what=character()) is used incorrectly on a file whichdoes not contain C-style character strings, warnings (usuallymany) are now given.o Building libR.so with the zlib in the R sources was notfinding the local zlib headers.o system(intern=TRUE) has an undocumented line length limit of119 chars both on Unix and Windows. The limit is now 8096 anddocumented. On Unix (only) every 120th character used to bediscarded.o plot.POSIX[cl]t were not passing graphics parameters on toaxis.POSIXct.o On some HP-UX systems, installed scripts were not executablewhen using the BSD-compatible install system program found byconfigure. We now always use install-sh on HP-UX. (PR#2091)o c() was converting NA names to "NA": now proper NA strings areused wherever possible. (PR#2358)o Checks in the C code prevent possible memory faults whenstandardGeneric is called invalidly.o Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required bythe .Call interface to generate arbitrary objects.o A typo was causing segfaults when using data.entry under SuSE.o mostattributes<-() was failing to copy across dimnames whenone component was NULL, affecting pmax() and pmin() when thefirst argument was a matrix. (root cause of PR#2357)o The pdf() device now initialises graphical parametersproperly. (PR#2281)o Checks in the C code prevent possible memory faults whenstandardGeneric is called invalidly.o Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required bythe .Call interface to generate arbitrary objects.o Problem that prevented package tcltk from working with Tcl/Tk8.4 (crash on initialization) resolved. (Notice that binariesmay still require an older Tcl/Tk, for example on Windows).o type.convert() was not getting the levels right if passed acharacter vector containing <NA>s, and `na.strings' did notcontain "NA". This affected read.table().o Internal match function did not check for nor handle 0-lengthvectors. (The R function match() did.) This could causetype.convert() to segfault.o The line length limit in output text connections has beenraised to 8095 chars.o Sweave now uses anonymous file rather than text connectionsto avoid the limits of the latter (see previous item).o parsing did not work on connections when pushback was used (asit had never been implemented). (PR#2396)o max.col() only found NAs in the first column (typo).o Added a workaround for recent versions of glibc (e.g. RedHat 8.0)with inconsistent mktime/localtime functions which causedconversion to/from POSIXct times prior to 1970-01-01 to beinconsistent. On such platforms this is a run-time test toallow e.g. R compiled on RH7.2 to run on RH8.0.o Clipping was not being reset properly between plots on the gtk()device (the default under the GNOME interface). (PR#2366)o axis(*, fg= cc) now works (again) the same as axis(*, col = cc).CHANGES IN R VERSION 1.6.1NEW FEATURESo Added a few "trivial and obviously missing" functions to tcltk:tkchooseDirectory, tkpopup, tkdialog, tkreado barplot() has a new argument `axis.lty', which if set to 1allows the pre-1.6.0 behaviour of plotting the axis and tickmarks for the categorical axis. (This was apparently notintentional, but axis() used to ignore lty=0.)The argument `border' is no longer ".NotYetUsed".BUG FIXESo hist(<datetime>, cex.axis = f) now works for x-axis too.o prompt() gave wrong \usage{.} for long argument default expressions.o summary(x) gives more information when `x' is a logical(or a data frame with a logical column which is now quite customary).o seq.POSIXt(from, to, length.out= . ) could give too long resultso summaryRprof() was counting nested calls to the same functiontwice.o Printing of objects of mode "expression" did strange things ifthere were "%" characters in the deparsed expression (PR#2120).o as.matrix.data.frame converted missings to "NA" not character NA.(PR#2130)o spec.pgram() was only interpolating zero freq for one series. (PR#2123)o help(randu) had % unescaped in the example. (PR#2141)o Making html links would fail if packages-head.html was notwriteable. (PR#2133)o Sweave.sty was not installed to $R_HOME/share/texmf whenbuilddir != srcdir. On Windows backslashes in latex paths haveto be replaced by slashes.o A memory leak in deparsing was introduced when eliminatingstatic variables (thanks to Achim Zeileis for spotting this).A similar problem in loading workspaces has been corrected.o TclInterface.Rd incorrectly used \synopsis for \usage so thatthe usage section wasn't output.o Readline stack off-by-one error. (PR#2165)o R_ExpandFileName had a memory leak in the case libreadline wasused under Unix-alikes.o sys.save.image() now closes all connections so it will work evenif the connection list has become full.o loess() had an unstated limit of four predictors: this is nowdocumented and enforced.o ${R_HOME}/etc/Renviron.site is now not read if R_ENVIRON isset, as documented. Previously it was read unless R_ENVIRONpointed to an actual file.o Startup.Rd described the processing under Unix-alikes butincorrectly implied it happened that way on the Windows andMac OS ports. Neither use Renviron.site, for example.o besselK(x,*) now returns 0 instead of Inf for large x. (PR#2179)o The Tcl console code didn't work with Tcl/TK 8.0, and has been#ifdef'd out. (PR#2090)o format.AsIs() was not handling matrices.o sd() was not passing na.rm to var() for matrices and data frames.o dist() {mva} silently treated +/-Inf as NA.o setwd() now returns NULL invisibly.o basename() and dirname() did not check the length of theirinput and ignored elements after the first. This affectedundoc {tools}.o If A had dimnames, eigen(A) had inappropriate dimnames. (PR#2116)o as.POSIXct.dates had a sign error for the origin (PR#2222)o The claim that pie charts should be avoided (in pie.Rd) is nowsupported by a quote from Cleveland (1985).o The vsnprintf() functions supplied for systems that don'tsupply their own had a bug in the output of fractional parts,corrupting data if using save() with ascii=TRUE. (PR#2144)o pretty() values close to 0 in some cases which are now 0 (PR#1032and D.Brahm's mails).o factor.scope() was giving an error rather than a reasonabledefault in some cases when it was called incorrectly (e.g. viaincorrect formula in add1()).BUILD ISSUESo Toplevel Makefile was missing dependency of "docs" on "R" (causingparallel makes to go wrong)o When building with recommended packages those were installedinto the first path in R_LIBS, if the environment variable waspresent.CHANGES IN R VERSION 1.6.0USER-VISIBLE CHANGESo 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 FEATURESo 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 theenvironment variable R_NO_BASE_NAMESPACE.- UseMethod dispatching now searches for methods in theenvironment of the caller of the generic function ratherthan the environment where the generic is defined.o The objects created in the methods package to representclasses, generic functions, method definitions, andinheritance relations now themselves belong to true classes. Inparticular, the "classRepresentation" objects follow the descriptionin "Programming with Data" (section 7.6).o Other additions and changes to the methods package:- The function setOldClass() has been added, following thedescription on page 450 of "Programming with Data". Use itif old-style classes are to be supplied in signatures forsetMethod, particularly if the old-style classes haveinheritance. Many of the old-style classes in the basepackage should be pre-specified; try getClass("mlm"), e.g.- The setGeneric() function applies some heuristics to warnabout possibly erroneous generic function definitions.(Before, obscure bugs could result.)- The function promptMethods() has been revised to work betterand to provide aliases for individual methods.- The behavior of the as() function has been generalized, inparticular with a strict= argument, the general goal beingto let simple extensions of classes pass through in methoddispatch and related computations without altering theobjects. More to make method behavior more "natural" thanfor direct use.- Some inconsistencies following detach("package:methods")have been removed, so it _should_ be possible todetach/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 objecttypes, and handles special values (NA, Inf, ...) correctly.o chol() now uses a tolerance for non-positive-definiteness andso 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 regularexpression matching. By default, if the pattern to be matchedconsists 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 toreturn the variance-covariance matrix of the parameterestimates 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 storedin unsigned longs. This allows memory limits to be set andobjects created in the range 2-4Gb on 32-bit platforms, andallows 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 onlylimited by the platform's address space.o All warning and error messages are truncated to a length setby options(warning.length=), defaulting to 1000. (Previouslymost (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) aregiven a `Built' field in the DESCRIPTION file.o as.data.frame() now coerces logical matrices into logicalcolumns (rather than factors).o [[<-.data.frame no longer coerces character replacement valuesto factor. This is consistent with using $ to replace andwith S4.o library() attempts to detect improperly installed packages, soas from this version an installed package must have aDESCRIPTION file and that file must have been stamped with a`Built:' line (which was introduced in 1.2.0). UnderUnix-alikes, the platform is checked against that used forinstallation.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 asatomic vectors.o predict.lm() warns if `newdata' is supplied and the fit wasrank-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 exactlythe 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 Rcode, 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 (whichwas previously taken as FALSE).o pdf() now uses PDF not R code for clipping, which ensures thatpartially visible text strings are (partially) shown.o Each R session uses a per-session temporary directory whichis removed at normal termination. The directory name is givenby the tempdir() function, and filenames returned bytempfile() will be within that directory.o help.start() on Unix now uses a .R subdirectory of theper-session temporary directory and not ~/.R. A side effectis that ~/.R is now never deleted by R.This now uses the remote control mechanism only if the Xdisplay is local to the R process (as otherwise it might use abrowser running on an arbitrary machine).o *Very* experimental browseEnv() for browsing objects in anenvironment.o cbind/rbind() used to ignore all zero-length vectors, anundocumented quirk for S-compatibility. This caused problemswhen combining zero-extent matrices and zero-length vectors, andnow zero-length vectors are ignored unless the result wouldhave 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 Choleskydecomposition and inverse of positive definite matrices usingLapack.o Changes to the tcltk package- on Unix systems, the Tcl event loop has been integrated withR's own (so that tkwait.variable() no longer halts updates ofplot windows).- also on Unix, stubs have been created to divert R's inputand output routines to go via Tcl commands. (Nothinguses this at present, but packages might be developed totake advantage of it.)- return value from Tcl commands is no longer invisible. A newprint method, print.tclObj(), has been introduced.- Tcl variables created by tclVar() are now explicitly put intoTcl's global namespace, removing potential scoping problems.- The tcltk dynamic library now loads with local=FALSE sincethe default had trouble when loading Tcl extensions(e.g. Tix)- The tkpager() function had not been updated for the returnvalue change from 1.5.0o The bmp(), jpeg() and png() devices can produce multiplebitmap files, one for each page. The default filenames have beenchanged 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 alignmentonly happens when no numbers of grid cells are specified. Newarguments 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 functiontracingState() 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', contributedby Gordon Smyth <smyth@wehi.edu.au>.o stars() now has add and plot arguments.DEPRECATED & DEFUNCTo The assignment operator `_' is deprecated: a warning is givenonce per R session.o machine() is deprecated in favour of .Platform$OS.type.Machine() and Platform() are deprecated in favour of .Machineand .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 areremoved in favor of the internal functions .dynLibs() and.libPaths().o restart() is deprecated in preparation for proper exceptionhandling. Use try(), as has long been recommended.DOCUMENTATION CHANGESo New demo(persp) containing some of the former example(persp) onesand more.C-LEVEL FACILITIESo 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 facilitateintegration with other loops. R_checkActivity andR_runHandlers should eventually replace getSelectedHandler.INSTALLATION CHANGESo Perl 5.005 or newer is now required.o R CMD INSTALL is now guaranteed to sort the R source files inASCII order.UTILITIESo R CMD check now tests for mis-use on an installed or binarypackage, and sets 'T' and 'F' to 'NULL' when running theexamples.o New function SweaveSyntConv() converts between Sweave filesyntaxes. RweaveLatex() now gets its prompt from options() anduses the text width as linebreak cutoff for deparsing inputstatements.BUG FIXESo axis() was not respecting par("mgp")[3] by default.(PR#916)o tcltk back-compatibility fix for tcl8.0o hist.POSIXct(*, breaks) now works for `breaks = #{breaks}' andwhen `x' has NAs; the latter applies to cut.POSIXct() as well.o The internal download.file() methods were setting the proxyport to 0 unless it was specified.o poly() did not work for >=3 column matrices.o cut.default() was not handling infinite values with infinitebreaks. (PR#1694)o ks.test() could fail due to integer overflow if n.x and n.ywere both large.o all.equal(3., 3:3) wasn't TRUE when the methods package waspresent.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 emptyslice borders and makes pie() useable for hundreds of slices.o all.equal.character() now works correctly also when NAs don'tmatch (PR#1767).o all.equal.numeric() now gives character {instead of list} whenlengths don't match.o read.dcf() had a memory leak.o Setting "tcl = a" in a highlevel graphic function worked almostas if par(tcl = a) was called (i.e. was persistent). Further,after par(tcl= <.>), highlevel graphic setting of tcl didn't workanymore. "tck" has now S's default of -0.01 (when tcl=NA).o data() was not checking if ./data was a directory beforewarning.o Assignment beyond the end of character strings was fillingwith "", 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 haveproper widths, i.e. typically constant.o Using GNU readline in asynchronous event callbacks (e.g. TclTkor Gtk) works correctly, i.e. doesn't cause readline to abortthe process.o Using Q to exit a browser invoked at the top-level could lead tothe browser being invoked on all future top-level loops (PR#1721)o step(fit, direction="both") now uses both directions even ifno scope is supplied.o strwidth(), strheight() now give 0 on NA strings (as theyare no longer plotted). (PR#1739)o mtext(), persp(), plot.hclust() and title() no longer plot NAcharacter strings.o pdf() has been protected against the user who specifiednon-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 givenmultiple objects. (PR#1807)o model.matrix() with a `rhs ~ .' formula included columns withduplicated names in the data frame, which caused subsequentconfusion (e.g. in prediction from the object).model.matrix() was sometimes incorrectly determining the firstfactor 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 andNetscape 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 if0 < nrows < 5 and more rows existed on the file. (PR1809)o loess() was not checking for too small a span (so no pointswere included in the smoothing window).o match() was assuming that there was only one possible bitpattern for a numeric NA, so some matches failed on Solarisunder 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 popencannot).o zero-column matrices were not being printed at all, not eventhe row names.o polygon()'s `border' argument was incorrectly documented: inparticular `border = 0' plots in background colour.o delete.response() was losing the attribute set for safeprediction. (PR#1840)o poly() was checking the degree against the number of pointseven 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 decreasingorder. (PR#1906)o order(na.last=NA) failed if all args were of length 1 or allwere NA. (PR#1913, 1981)o source() would crash if the `keep.source = TRUE' and the inputcontained a function with a line longer than 1024 chars. (PR#1900)The limits on nesting of functions and on total function sizewhen the source is kept are now enforced. As (incorrectly)the source was always kept, this meant functions longer than128Kb could crash R, even in packages.o lqs() and cov.rob() check that the quantile argument does notexceed 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 isnow the weighted SSq. (PR#1930)o aov() could still fail on multistrata models with very longError 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 callsusing quote() instead of expression() for plotmath. (PR#1939)o deparse() dropped parentheses in some case where they wereneeded. (PR#1119, 1737, 1928, at least)o pdf(onefile = FALSE) never incremented the file number beyondtwo.o On Unix, protect against broken pipes where popen calls succeedeven though the command does not exist (and the glibc manualsays it should return NULL). (PR#1959)o data.frame() was allowing explicit row.names with missingvalues, but row names are required to be unique.o as.character(expression) was silently truncating to 60characters: 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 zeroo binom.test() miscalculated p-value in some extreme caseso 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 avectorCHANGES IN R VERSION 1.5.1NEW FEATURESo Enhancements to mathematical annotation of plots:- expressions involving dot(<something>) now produce a dot accentabove the <something> (initial patch from Ben Bolker).- within an expression, the symbol partialdiff is now convertedto a partial differential symbol (greek delta).o smooth.spline() has a new argument `nknots' allowing to set thedefault number of knots (when `all.knots = FALSE' as per default).BUG FIXESo Rdconv now skips CRs in input files, even on Unix.o readBin() had a (very slow) memory leak if changing size or readingcharacter strings. writeChar() had a memory leak.o polygon() and rect() with lty = "blank" were omitting the fillcolour (if present). symbols(circles=, lty="blank") wasdrawing the border of the disks.o Subsetting non-existent rows in a data frame would producemissing row names, which are not allowed.o On Unix, R_PAPERSIZE was set to '' instead of 'a4' as default onsystems without paperconf.o Under GNOME, capabilities() now reports correctly that X11, pngand jpeg are available (if they are under X11).o The names of some results of unlist() had the wrong internallength, which confused paste(). Both have been corrected. (PR#1524)o RweaveLatex.Rd had unbalanced braces in section "SupportedOptions".o merge() with multiple and differently-named match columnsfailed. (PR#1510)o NAs in right-justified unquoted character matrices were beingmis-aligned. This mainly affected printing data frames.o predict.*bSpline() bugs extrapolating for deriv >= 1 (PR#1473),and predict.[bn]s bug e.g. for bs(x), reported by Ch.Sangiorgio.o qr.X was failing if n < p. Fixed, but only in the case whenpivoting does not occur. (PR#1519)o xx[, 1:3] was returning a list if xx had only one row, eventhough xx[1, 1:3] was a data frame. (PR#1530)o nls() was reporting incorrectly the number of iterations if themaximum was reached.o rbind.data.frame() was coercing logical columns to factors.(PR#1536)o Rprof(NULL) or Rprof("") called when not profiling caused asegfault: now silently ignored. (PR#1471)o On systems (e.g. Windows) using R's own code for expm1, thevalues were wrong for large negative x, and this affectedpweibull(), for example.o prettyNum(*, bigmark=*) added extra marks in some cases. (PR#1548)o cut.dendrogram() failed in some cases. (PR#1552)o The links in refman.pdf were broken by a single invalid\alias{}. Now Rdconv checks more comprehensively. (PR#1550)o predict(smooth.spline(x,*), deriv =1) did not predict at all `x'values, andsmooth.spline(x,*, all.knots = TRUE) used much too much memorywhen length(x) was largish.smooth.spline(*, .... trace = TRUE ..) is a bit more self-explaining.o pexp(x, log=TRUE) and pweibull(*) were losing precision for large x.o Workaround for NetBSD bug in compiling dounzip.c. (PR#1565/6)o Conversions to numeric in type.convert were always treating "NA" asmissing whatever the setting of na.strings. (PR#1568)o R CMD check now deals correctly with package names containing a'.' in the Depends field of a DESCRIPTION file. (PR#1591)o pbinom() and pbinom() were misssing the "fuzz" that other discretedistributions have in order to guard against truncation.o The "=" assignment operator behaved as "<<-" in some constructionswith composite left-hand sides.o Added print.AsIs() method to ensure "AsIs" objects are printedby the method for their real class. (PR#1587)o mosaicplot(*, color = v) now recycles v[] if needed.o Calling dev.control("inhibit") with no graphics device opencrashed R. (PR#1605)o read.dcf() was not checking that memory allocation succeeded.o The C function fprec might overflow for > 16 digits, showingup in example(str) on some platforms.o Changes to the methods package:- Nonstandard generic function definitions given tosetGeneric now work; these were previously ignored.- Classes that extend matrix, etc. as the data part previously losttheir attributes.- There were bugs in distinguishing methods for "missing" frommethods for "ANY".- Some coerce methods were not selected correctly when the two classeswere related by an "is" relation.- extends() now works correctly if given a class definition ratherthan a name.- class()<- was leaving in an explicit class attribute for basic datatypes.- Method signatures including arguments following "..." in theargument list of the generic didn't work.o par(mgp = v) now allows negative `v' (S-compatibly and sensibly).o identify.hclust() masked its `x' argument and so failed.o System rint was never being used in fround.c.o round/trunc.POSIXt were erroneously retaining information onDST. (PR#1543)o tcltk package didn't work with tcl8.0.x. Compatibility codeinserted (PR#1640, thanks to René Bertin for helping out withthis).o selfStart() {pkg "nls"} now works again when parameter names arenot specified (but implicit).o legend() now treats lty="0" properly (as solid).o ARMAacf was failing if 0 < p < q+1: it failed to say that ar neededto be padded with zeroes, and now the code does that.o old.packages() was assuming a bundle was installed in only onelibrary, and so update.packages() would only update a bundlein the first location in lib.loc.o fisher.test() could miscalculate odds ratio and confidenceinterval for tables with large entries, due to numericaloverflow.o Using lty = "1" (or "10") does no longer produce invalidpostscript or pdf. Using "0" in a character lty is currently notimplemented device-independently and needs more fixing.o ccf(plot = FALSE) was returning a spurious extra 0 at lag 0.o On console-based versions of R (Windows, GNOME, probablyMac OS) warning/error messages longer than 8192 chars couldcrash R. (PR#1651)o Comparisons between objects of mode "call" using "==" now returnTRUE if both sides deparse to the same string (as always intended).o HoltWinters() now initializes correctly in the exponentialsmoothing case, and plot.HoltWinters() allows lty to be set.o fisher.test() crashed due to corruption on some largeproblems. It also crashed on tables with total one. (PR#1662)o The substitution code for strptime (used e.g. on Windows)cached the month names and so did not recognise locale changesduring an R session, as used by get.hist.quote{tseries}.Caching has been supressed. (PR#1116)o Some functions used the non-existing error() function insteadof stop().o vector("complex",n) doesn't return random garbage anymore.CHANGES IN R VERSION 1.5.0USER-VISIBLE CHANGESo XDR support is now guaranteed to be available, so the defaultsave format will always be XDR binary files, and it is safe todistribute data in that format. (We are unaware of anyplatform that did not support XDR in recent versions of R.)gzfile() is guaranteed to be available, so the preferredmethod to distribute sizeable data objects is now viasave(compress = TRUE).o pie() replaces piechart() and defaults to using pastel colours.o formatC has new arguments (see below) and formatC(*, d = <dig>)is no longer valid and must be written as formatC(*, digits = <dig>).o Missingness of character strings is treated much moreconsistently, and the character string "NA" can be used as anon-missing value.o summary.factor() now uses a stable sort, so the output willchange where there are ties in the frequencies.NEW FEATURESo Changes in handling missing character strings:- "NA" is no longer automatically coerced to a missing valuefor a character string. Use as.character(NA) where a missingvalue is required, and test via is.na(x) not x == "NA".String "NA" is still converted to missing by scan() andread.table() unless `na.strings' is changed from the default.- A missing character string is now printed as `NA' (no quotes)amongst quoted character strings, and `<NA>' if amongstunquoted character strings.- axis() and text.default() omit missing values of their`labels' argument (rather than plotting "NA").- Missing character strings are treated as missing much moreconsistently, e.g. in logical comparisons and in sorts.identical() now differentiates "NA" from the missing string.o Changes in package methods:- New function validSlotNames().- Classes can explicitly have a "data part", formallyrepresented as a .Data slot in the class definition, butimplemented consistently with informal structures. While theimplementation is different, the user-level behavior largelyfollows the discussion in "Programming with Data".- A "next method" facility has been provided, via the functioncallNextMethod(). This calls the method that would have beenselected if the currently active method didn't exist. See?callNextMethod(). This is an extension to the API.- Classes can have initialize methods, which will be calledwhen the function new() is used to create an object from theclass. See ?initialize. This is an extension to the API.- The logic of setGeneric() has been clarified, simplifyingnonstandard generic functions and default methods.o Changes in package tcltk:- Now works with the GNOME user interface.- Several new functions allow access to C level Tcl objects.These are implemented using a new `tclObj' class, and thisis now the class of the return value from .Tcl() and tkcmd().o Changes in package ts:- More emphasis on handling time series with missing valueswhere possible, for example in acf() and in theARIMA-fitting functions.- New function arima() which will replace arima0() in duecourse. Meanwhile, arima0() has been enhanced in severalways. Missing values are accepted. Parameter values canbe initialized and can held fixed during fitting. There isa new argument `method' giving the option to useconditional-sum-of-squares estimation.- New function arima.sim().- New datasets AirPassengers, Nile, UKgas and WWWusage,and a expanded version of UKDriverDeaths (as a multipletime series Seatbelts).- New generic function tsdiag() and methods for arima and arima0,to produce diagnostic plots. Supersedes arima0.diag().- New functions ARMAacf() and ARMAtoMA() to computetheoretical quantities for an ARMA process.- New function acf2AR() to compute the AR process with a givenautocorrelation function.- New function StructTS() to fit structural time series, andnew generic function tsSmooth() for fixed-intervalstate-space smoothing of such models.- New function monthplot() (contributed by Duncan Murdoch).- New functions decompose() and HoltWinters() (contributed byDavid Meyer) for classical seasonal decomposition andexponentially-weighted forecasting.o An extensible approach to safe prediction for models with e.g.poly(), bs() or ns() terms, using the new generic functionmakepredictcall(). Used by most model-fitting functionsincluding lm() and glm(). See ?poly, ?cars and ?ns forexamples.o acosh(), asinh(), atanh() are guaranteed to be available.o axis() now omits labels which are NA (but still draws thetick mark.o Connections to bzip2-ed files via bzfile().o chol() allows pivoting via new argument `pivot'.o cmdscale() now takes rownames from a dist object `d' as wellas from a matrix; it has new arguments `add' (as S) and `x.ret'.o crossprod() handles the case of real matrices with y = xseparately (by accepting y = NULL). This gives a smallperformance gain (suggestion of Jonathan Rougier).o deriv/deriv3() can now handle expressions involving pnorm anddnorm (with a single argument), as in S-PLUS.o New function expm1() both in R and in C API, for accurate exp(x)-1;precision improvement in pexp() and pweibull() in some cases.(PR#1334-5)o New function findInterval() {using new C entry pointfindInterval, see below}.o formatDL() now also works if both items and descriptions aregiven in a suitable list or matrix.o gzfile() is guaranteed to be available, and hence the`compress' option to save() and save.image().o hist() now has a method for date-time objects.o library() now checks the dependence on R version (if any) andwarns if the package was built under a later version of R.o library(help = PKG) now also returns the information about thepackage PKG.o Added function logb(), same as log() but for S-PLUScompatibility (where log now has only one argument).o New na.action function na.pass() passes through NAs unaltered.o piechart() has been renamed to pie(), as piechart is a Trellisfunction for arrays of pie charts. The default fill coloursare now a set of pastel shades, rather than par("bg").o plclust() in package mva, for more S-PLUS compatibility.o poly() now works with more than one vector or a matrix as input,and has a predict method for objects created from a singlevector.o polyroot() now handles coefficient vectors with terminalzeroes (as in S).o New prettyNum() function used in formatC() and format.default()which have new optional arguments `big.mark', `big.interval',`small.mark', `small.interval', and `decimal.mark'.o print.coefmat() has a new argument 'eps.Pvalue' for determiningwhen small P-values should be printed as "< {...}".o The recover() function has been moved to the base package.This is an interactive debugging function, usually a goodchoice for options(error=). See ?recover.o rep() has a new argument `each' for S-PLUS compatibility.The internal call is made available as rep.int(), again forhelp in porting code.o New functions rowSums(), colSums(), rowMeans() and colMeans():versions of apply() optimized for these cases.o rug() now has a "..." argument allowing its location to be specified.o scan() can have NULL elements in `what', useful to save spacewhen columns need to be discarded.o New option by = "DSTday" for seq.POSIXt().o Changes to sorting:- sort(), sort.list() and order() have a new argument`decreasing' to allow the order to be reversed whilststill preserving ties.- sort() has an option to use quicksort in some cases(currently numeric vectors and increasing order).- The default Shell sort is Sedgewick's variant, around 20%faster, and pre-screening for NAs speeds cases without anyNAs several-fold.- sort.list() (and order with just one vector) is severaltimes faster for numeric, integer and logical vectors, andfaster for character vectors.o New assignment forms of split(); new function unsplit().o New sprintf() function for general C like formatting, fromJonathan Rougier.o Argument `split' of summary.{aov,aovlist} is now implemented.o summary.princomp() now has a separate print() method, and`digits' is now an argument to the print method and not tosummary.princomp itself.o An extended version of the trace() function is available,compatible with the function in S-PLUS. Calls to R functionscan be inserted on entry, on exit, and before anysubexpressions. Calls to browser() and recover() are useful.See ?trace.o New function TukeyHSD() for multiple comparisons in the resultsof aov(). (Formerly function Tukey in package Devore5 byDouglas Bates.)o New read-only connections to files in zip files via unz().o warning() has new argument `call.', like stop()'s.o zip.file.extract() is no longer provisional and has an"internal" method available on all platforms.o Methods for [, [<- and as.data.frame() for class "POSIXlt".o Much improved printing of matrices and arrays of type "list".o The "Knuth-TAOCP" option for random-number generation has beengiven an option of using the 2002 revision. See ?RNG for thedetails: the R usage already protected against thereported `weakness'.o min/max of integer(0) (or NULL) is now Inf/-Inf, not anextreme integer.DEPRECATED & DEFUNCTo .Alias, reshapeLong(), reshapeWide() are defunct.o arima0.diag() (package ts) is deprecated: use tsdiag() instead.o piechart() is deprecated; renamed to pie().DOCUMENTATION CHANGESo `Writing R Extensions' now has an example of calling R'srandom numbers from FORTRAN via C.o R itself and all R manuals now have ISBN numbers, please usethem when citing R or one of the manuals.INSTALLATION CHANGESo The configure script used when building R from source under Unixis now generated using Autoconf 2.50 or later, which has thefollowing 'visible' consequences:- By default, configure no longer uses a cache file. Use thecommand line option '--config-cache' (or '-C') to enablecaching.- Key configuration variables such as 'CC' are now *precious*,implying that the variables* no longer need to be exported to the environment and can andshould be set as command line arguments;* are kept in the cache even if not specified on the commandline, and checked for consistency between two configure runs(provided that caching is used, see above);* are kept during automatic reconfiguration as if having beenpassed as command line arguments, even if no cache is used.See the variable output section of 'configure --help' for alist of all these variables.o Configure variable 'FC' is deprecated, and options '--with-g77','--with-f77' and '--with-f2c' are defunct. Use configurevariable 'F77' to specify the FORTRAN 77 compiler, and 'F2C' tospecify the FORTRAN-to-C compiler and/or that it should be usedeven if a FORTRAN 77 compiler is available.o Non-standard directories containing libraries are specifiedusing configure variable 'LDFLAGS' (not 'LIBS').UTILITIESo Sweave(), Stangle() and friends in package tools. Sweave allowsmixing LaTeX documentation and R code in a single source file:the R code can be replaced by its output (text, figures) toallow automatic report generation. Sweave files found inpackage subdir 'inst/doc' are automatically tested by R CMDcheck and converted to PDF by R CMD build, see the section onpackage vignettes in the 'Writing R Extensions' manual.o Rdconv can convert to the S4 '.sgml' format.o R::Utils.pm masks some platform dependencies in perl code byproviding global variables like R_OSTYPE or wrapper functionslike R_runR().o If a directory 'inst/doc' is present in the sources of apackage, the HTML index of the installed package has a link tothe respective subdirectory.o R CMD check is more stringent: it now also fails on malformed'Depends' and 'Maintainer' fields in 'DESCRIPTION' files, and onunbalanced braces in Rd files. It now also provides pointers todocumentation for problems it reports.o R CMD check, build and INSTALL produce outline-type output.o QC functions in package 'tools' now return the results of theircomputations as objects with suitable print() methods. Bydefault, output is only produced if a problem was found.o New utility R CMD config to get the values of basic R configurevariables, or the header and library flags necessary for linkingagainst R.o Rdindex and maketitle.pl require perl 5.005, as Text::Wrap::fillwas only introduced at 5.004_05.C-LEVEL FACILITIESo All the double-precision BLAS routines are now available,and package writers are encouraged not to include their own(so enhanced ones will be used if requested at configuration).o findInterval(xt[],n,x,...) gives the index (or interval number)of x in the sorted sequence xt[]. There's anF77_SUB(interv)(.) to be called from Fortran; this used to bepart of predict.smooth.spline's underlying Fortran code.o Substitutes for (v)snprintf will be used if the OS does notsupply one, so tests for HAVE_(V)SNPRINTF are no longer needed.o The DUP and NAOK arguments in a .C() call are not passed onto the native routine being invoked. Any code that relied onthe old behaviour will need to be modified.o log1p is only provided in Rmath.h if it is not provided by theplatform, in which case its name is not remapped, but aback-compatibility entry point Rf_log1p is provided.Applications using libRmath may need to be re-compiled.o The methods used by optim() and integrate() have entry points inR_ext/Applic.h and have a more general interface documented in`Writing R Extensions'.o The bessel_? entry points are now suitable to be calledrepeatedly from code loaded by .C(). (They did not freememory until .C() returned in earlier versions of R.)o Server sockets on non-Windows platforms now set the SO_REUSEADDRsocket option. This allows a server to create simultanousconnections to several clients.o New quicksort sorting (for numeric no-NA data), accessible fromC as R_qsort() etc and from Fortran as qsort4() and qsort3().o Rinternals.h no longer includes fcntl.h, as this is not anISO C header and cannot be guaranteed to exist.o Fortran subroutines are more correctly declared as `extern void'in R_exts/Applic.h and R_exts/Linpack.h.BUG FIXESo The calculation of which axes to label on a persp() plot wasincorrect in some cases.o Insufficient information was being recorded in the display listfor the identify() function. In particular, the "plot="argument was ignored when replaying the display list. (PR#1157)o The vertical alignment of mathematical annotations was wrong.When a vertical adjustment was not given, it was bottom-adjustingi.e,. it was treating adj=0 as adj=c(0, 0). It now treatsadj=0 as adj=c(0, 0.5) as for "normal" text. (PR#1302)o the man page (doc/R.1) wasn't updated with the proper VERSION.o smooth.spline() had a "df = 5" default which was never used andhence extraneous and misleading.o read.fwf() was interpreting comment chars in its call to scan:replaced by a call to readlines(). (PR#1297/8)o The default has been changed to scan(comment.char="") forconsistency with earlier code (as in the previous item).o bxp(*, notch.frac = f) now draws the median line correctly.o Current versions of gs were rotating the output ofbitmap(type = "pdfwrite") and when converting the outputof postscript() to PDF; this has been circumvented bysuppressing the %%Orientation comment for non-standardpaper sizes.o plot.ts(x, log = "y") works again when x has 0s, also for matrix x.o add1(), drop1(), step() work again on glm objects withformulae with rhs's containing `.'. (Broken by a `bug fix'(in reality an API change) in 1.2.1.)o optim(method="BFGS") was not reporting reaching `maxit'iterations in the convergence component of the return value.o aov() and model.tables() were failing on multistrata models withexcessively long Error formula. (PR#1315)o Transparent backgrounds on png() devices on Unix-alikes hadbeen broken during the driver changes just prior to 1.4.0.(They worked correctly on Windows.)o demo(is.things) didn't work properly when the methods package wasattached.o match(), unique() and duplicated() were not declaring all NaNs to beequal, yet not always distinguishing NA and NaN. This wasvery rare except for data imported as binary numbers.o The error handler recover() protects itself against errors indump.frames and uses a new utility, limitedLabels, to generatenames for the dump that don't inadvertently blow the limit onsymbol length. (TODO: either fix dump.frames accordingly orremove the limit--say by truncating very long symbols?)o se.contrasts() works more reliably with multistratum models,and its help page has an example.o summary.lm() was not returning r.squared nor adj.r.squared forintercept-only models, but summary.lm.null() was returningr.squared but not adj.r.squared. Now both are alwaysreturned. Neither returned f.statistic, and that is nowdocumented.o Subsetting of matrices of mode list (or other non-atomicmodes) was not implemented and gave incorrect results withoutwarning. (PR#1329)Under some circumstances subsetting of a character matrixinserted NA in the wrong place.o abs() was not being treated as member of the Math groupgeneric function, so e.g. its method for data frames was notbeing used.o set.seed(seed, "default") was not using the `seed' value (onlyfor kind = "default").o logLik.lm() now uses "df = p + 1" again (`+ sigma'!).o logLik.glm() was incorrect for families with estimated dispersion.o Added strptime() workaround for those platforms (such asSolaris) that returned missing components as 0. Missingdays are now detected, but missing years will stillbe interpreted as 1900 on such platforms.o Inheritance in formal classes (the methods package) worksbreadth-first as intuition would expect.o The new() function in package `methods' works better (maybe evencorrectly?) for the various combinations of super-classes andprototypes that can be supplied as unnamed arguments.o Internal code allowed one more connection to be allocated thanthe table size, leading to segfaults. (PR#1333)o If a user asks to open a connection when it is created andit cannot be opened, the connection is destroyed before returningfrom the creation call. (related to PR#1333)o Sys.putenv() was not using permanent storage. (PR#1371)o La.svd() was not coercing integer matrices. (PR#1363)o deriv(3) now reports correctly the function it cannot findthe derivatives table.o The GNOME user interface was over-enthusiastic about settinglocale information. Now only LC_CTYPE, LC_COLLATE and LC_TIMEare determined by the user's environment variables (PR#1321)o In X11, locator() would sound the bell even if "xset b off"had been set.o merge() could be confused by inconsistent use of as.character()giving leading spaces.o [pqr]binom() no longer silently round the `size' argument,but return NaN (as dbinom() does). (PR#1377)o Fixed socket writing code to block until all data is written.Fixed socket reading code to properly handle long reads and readswith part of the data in the connection buffer.o Allow sockets to be opened in binary mode with both open="ab" andopen="a+b".o levels<-.factor() was using incorrectly list values longer thanthe number of levels (PR#1394), and incorrectly documentedthat a character value could not be longer than the existinglevels.o The pdf() device was running out of objects before thedocumented 500 page limit. Now there is no limit.o legend() did not deal correctly with `angle' arguments. (PR#1404)o sum() tried to give an integer result for integer arguments,but (PR#1408)- this was not documented- it sometimes warned on overflow, sometimes not- it was order-dependent for a mixture of integer and numeric args.o mean() gave (numeric) NA if integer overflow occurred in sum(),but now always works internally with numeric (or complex) numbers.o sort.list() and order() were treating NA_STRING as "NA".o sort.list(na.last = NA) was not implemented.o seq.default() was returning only one element for a relativerange of less than about 1e-8, which was excessively conservative.(PR#1416)o tsp(x) <- NULL now also works after library(methods).o persp(shade=) was not working correctly with the defaultcol=NULL if this was transparent. (PR#1419)o min/max(complex(0)) was returning a random value.o range() gave c(1, 1).o range(numeric(0)) is now c(Inf, -Inf), as it was documented to be.o print.ts() was occasionally making rounding errors in the labelsfor multiple calendar time series.o Rdconv was not handling nested \describe{} constructs whenconverting to HTML (PR#1257) and not fixing up mal-formed\item fields in \describe{} when converting to text (PR#1330).o filled.contour() was not checking consistency of x, y, z.(PR#1432)o persp.default() no longer crashes with non-character labels.(PR#1431)o fft() gave incorrect answers for input sizes 392, 588, 968, 980 ....(PR#1429)o det(method = "qr") gave incorrect results for numericallysingular matrices. (PR#1244)o barplot() now allows the user to control `xpd'. (PR#1088, 1398)o library() (with no arguments) no longer fails on empty TITLE files.o glm() was failing if both offset() and start were specified. (PR#1421)o glm() might have gotten confused if both step-shortening andpivoting had occurred (PR#1331). Step-halving to avoid theboundary of feasible values was not working.o Internal representation of logical values was not beingtreated consistently. (Related to PR#1439)o The c() function sometimes inserted garbage in the name vectorfor some types of objects, e.g. names(c(ls, a=1)).o Fixed bug in `$' that could cause mutations on assignment (PR#1450).o Some X servers displayed random bytes in the window title ofgraphics windows (PR#1451)o The X11 data editor would segfault if closed with window managercontrols (PR#1453)o Interrupt of Sys.sleep() on UNIX no longer causes subsequentSys.sleep() calls to segfault due to infinite recusion.o Eliminated a race condition that could cause segfaults when a SIGINTwas received while handling an earlier SIGINT.o rect(lty = "blank") was incorrectly drawing with a dashed line.o type.convert() was not reporting incorrectly formatted complexinputs. (PR#1477)o readChar() was not resetting vmax, so causing memory build-up.(PR#1483)*************************************************** ** 1.4 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.4.1BUG FIXESo scan(multi.line = FALSE) now always gives an immediate errormessage if a line is incomplete. (As requested in PR#1210)o read.table() is no longer very slow in processing comments:moved to C code and fewer lines checked.o type.convert() could give stack imbalance warnings if usedwith as.is = TRUE.o predict.mlm ignored newdata (PR#1226) and also offsets.o demo(tkttest) was inadvertently changed in 1.4.0 so that it wouldevaluate the requested test, but not display the result.o stars(scale = TRUE) (the default) now works as documented (andas S does). Previously it only scaled the maximum to 1. (PR#1230)o d0 <- data.frame(a = 0); data.matrix(d0[0, 0]) anddata.matrix(d0[, 0]) now work.o plot(multiple time series, plot.type = "single") was computing`ylim' from the first series only.o plot.acf() has a new `xpd = par("xpd")' argument which by default*does* clipping (of the horizontal lines) as desired (xpd = NA wasused before, erronously in most cases).o predict(smooth.spline(.), deriv = 1) now works.o identify() failed when x is a structure/matrix. (PR#1238)o getMethod() returns NULL when optional=TRUE as promised in thedocumentation.o setMethod() allows "..." to be one of the arguments omitted inthe method definition (but so far no check for ... being missing)o Allow round() to work again on very large numbers (introducedin fixing PR#1138). (PR#1254)o Rinternals.h is now accepted by a C++ compiler.o type.convert() was failing to detect integer overflow.o piechart() was defaulting to foreground colour (black) fillsrather than background (as used in 1.3.1 and earlier). Nowbackground is used, but be aware that as from 1.4.0 this maybe transparent.o La.eigen(*, only.values=TRUE) does not segfault anymore in onebranch (PR#1262).o cut() now produces correct default labels even wheninclude.lowest = TRUE (PR#1263).o reformulate() works properly with a response.o cmdscale(*, k = 1) now works properly.o Options by = "month" and "year" to seq.POSIXt() will alwaystake account of changes to/from daylight savings time: thiswas not working on some platforms.o glm.fit.null() now accepts all the arguments of glm.fit() (itcould be called from glm.fit with arguments it did notaccept), and is now documented.o cov.wt(cbind(1), cor = TRUE) now works.o predict(glm.object, se.fit = TRUE) was failing if the fitinvolved an offset.o detach() on package:base would crash R. (PR#1271)o print or summary on a manova() object with no terms, no names onthe response and intercept = FALSE (which is not sensible)would give an error.o seek() on file connections was ignoring the `origin' argument.o Fixed new environment handling in library() to avoid forcingpromises created by delay()o arima0() could leak memory: now released via on.exit().o qr.coef(qr,*) now keeps the names of qr$qr.o read.00Index() no longer fails on data indexes not generated byRdindex (PR#1274).CHANGES IN R VERSION 1.4.0USER-VISIBLE CHANGES[This is a new section to highlight changes in behaviour, whichmay be given in more detail in the following sections.Many bug fixes are also user-visible changes.]o The default save format has been changed, so saved workspacesand objects cannot (by default) be read in earlier versions of R.o The number of bins selected by default in a histogram usesthe correct version of Sturges' formula and will usually beone larger.o data.frame() no longer converts logical arguments to factors(following S4 rather than S3).o read.table() has new arguments `nrows' and `colClasses'. If thelatter is NA (the default), conversion is attempted tological, integer, numeric or complex, not just to numeric.o model.matrix() treats logical variables as a factors withlevels c(FALSE, TRUE) (rather than 0-1 valued numericalvariables). This makes R compatible with all S versions.o Transparency is now supported on most graphics devices.This means that using par("bg"), for example in legend(), willby default give a transparent rather than opaque background.o [dpqr]gamma now has third argument `rate' for S-compatibility(and for compatibility with exponentials). Calls which usepositional matching may need to be altered.o The meaning of spar = 0 in smooth.spline() has changed.o substring() and substring()<- do nothing silently on acharacter vector of length 0, rather than generating anerror. This is consistent with other functions and with S.o For compatibility with S4, any arithmetic operation using azero-length vector has a zero-length result. (This wasalready true for logical operations, which were compatiblewith S4 rather than S3.)o undoc() and codoc() have been moved to the new package `tools'.o The name of the site profile now defaults to`R_HOME/etc/Rprofile.site'.o The startup process for setting environment variables now firstsearches for a site environment file (given by the environmentvariable `R_ENVIRON' if set or `R_HOME/etc/Renviron.site' ifnot), *and* then for a user `.Renviron' file in the current orthe user's home directory.o Former stars(*, colors = v) must now be stars(*, col.segments = v).o The default methods for La.svd and La.eigen have changed andso there may be sign changes in singular/eigen vectors,including in cancor, cmdscale, factanal, princomp and varimax.NEW FEATURESo Transparency is now supported on most graphics devices.Internally colors include an alpha channel for opacity, but atpresent there is only visible support for transparent/opaque.The new color "transparent" (or NA or "NA") is transparent,and is the default background color for most devices. Thosedevices (postscript, XFig, PDF, Windows metafile and printer)that previously treated bg = "white" as transparent now have"transparent" as the default and will actually print "white".(NB: you may have bg = "white" saved in .Postscript.options inyour workspace.)o A package `methods' has been added, containing formal classesand methods ("S4" methods), implementing the description inthe book "Programming with Data". See "?Methods" and thereferences there for more information.- In support of this, the "@" operator has been added to thegrammar.- Method dispatch for formal methods (the standardGenericfunction), is now a primitive. Aside from efficiency issues,this allows S3-style generics to also have formal methods(not really recommended in the long run, but it should atleast work). The C-level dispatch is now implemented forprimitives that use either DispatchGroup or DispatchOrEvalinternally.- A version of the function "plot" in the methods package hasarguments "x" and "y", to allow methods for either or both.See "?setMethod" for examples of such methods.- The methods package now uses C-level code (from withinDispatchOrEval) to dispatch any methods defined forprimitive functions. As with S3-style methods, methods canonly be defined if the first argument satisfies is.object(x)(not strictly required for formal methods, but imposed fornow for simplicity and efficiency).o Changes to the tcltk package:- New interface for accessing Tcl variables, effectivelymaking the R representations lexically scoped. The old formis being deprecated.- Callbacks can now be expressions, with slightly unorthodoxsemantics. In particular this allows bindings to contain"break" expressions (this is necessary to bind code toe.g. Alt-x without having the key combination also insert an"x" in a text widget.)- A bunch of file handling and dialog functions (previouslyonly available via tkcmd) have been addedo The "?" operator is now an actual function. It can be used(as always) as a unary operator (?plot) and the grammar nowallows it as a binary operator, planned to allowdifferentiating documentation on the same name but differenttype (class?matrix, for example). So far, no suchdocumentation exists.o New methods AIC.default() and logLik.glm(), also fixingAIC(<glm obj>).o axis.POSIXct() allows the label date/times to be specifiedvia the new `at' argument.o arrows() now allows length = 0 (and draws no arrowheads).o Modifications to the access functions for more consistency with S:arguments `name', `pos' and `where' are more flexible inassign(), exists(), get(), ls(), objects(), remove() and rm().o Three new primitive functions have been added to base:dataClass(), objWithClass(), and as.environment(). The first twoare support routines for class() and class<-() in packagemethods. The third replaces pos.to.env() in the functions get(),exists(), and friends.o barplot() now respects an inline `cex.axis' argument and has aseparate `cex.names' argument so names and the numeric axislabels can be scaled separately. Also, graphics parametersintended for axis() such as `las' can now be used.o Shading by lines added to functions barplot(), hist(),legend(), piechart(), polygon() and rect().o bxp() has a show.names argument allowing labels on a singleboxplot; it and hence boxplot() now makes use of pch, cex, and bgfor outlier points().bxp() and boxplot() also have an argument `outline' to suppressoutlier drawing {S-PLUS compatibly}.o New capabilities() options "GNOME" and "IEEE754".o New function casefold(), a wrapper for tolower/toupperprovided for compatibility with S-PLUS.o contour() is now generic.o cor.test() in package ctest now also gives an asymptoticconfidence interval for the Pearson product moment correlationcoefficient.o data(), demo() and library() now also return the informationabout available data sets, demos or packages. Similarly,help.search() returns its results.o density() allows `bw' or `width' to specify a rule to choose thebandwidth, and rules "nrd0" (the previous default), "nrd","ucv", "bcv", "SJ-ste" and "SJ-dpi" are supplied (based onfunctions in package MASS).o df.residual() now has a default method, used for classes"lm" and "glm".o New argument `cacheOK' to download.file() to request cacheflushing.All methods for download.file() do tilde-expansion on the pathname.The internal download.file() etc now allow URLs of the formftp://user@foo.bar/ and ftp://user:pass@foo.bar/o duplicated() and unique() are now generic functions withmethods for data frames (as well as atomic vectors).o factanal() and princomp() use napredict() on their scores, sona.action = na.exclude is supported.o Function getNativeSymbolInfo() returns details about a nativeroutine, potentially including its address, the library inwhich it is located, the interface by which it can be calledand the number of parameters.o Functions such as help() which perform library or package indexsearches now use NULL as default for their `lib.loc' argument sothat missingness can be propagated more easily. The defaultcorresponds to all currently known libraries as before.o Added function file.rename().o hist.default() allows `breaks' to specify a rule to choose thenumber of classes, and rules "Sturges" (the previous default),"Scott" and "FD" (Freedman-Diaconis) are supplied (based onpackage MASS).o Function identical(), a fast and reliable way to test for exactequality of two objects.o New generic function is.na<-(), from S4. This is by defaultequivalent to x[value] <- NA but may differ, e.g. for factorswhere "NA" is a level.o is.xxx reached through do_is are now generic.o La.eigen() and La.svd() have new default methods to use later(and often much faster) LAPACK routines. The differenceis most noticeable on systems with optimized BLAS libraries.o length() is now generic.o New function .libPaths() for getting or setting the paths to thelibrary trees R knows about. This is still stored in .lib.loc,which however should no longer be accessed directly.o Using lm/glm/... with `data' a matrix rather than a data framenow gives a specific error message.o loess(), lqs(), nls() and ppr() use the standard NA-handlingand so support na.action = na.exclude.o mahalanobis() now has a `tol' argument to be passed to solve().o mean() has `data frame' method applying mean column-by-column.When applied to non-numeric data mean() now returns NA ratherthan a confusing error message (for compatibility with S4).Logicals are still coerced to numeric.o The formula interface to mosaicplot() now allows a contingencytable as data argument.o new.env() is now internal and allows you to set hashing. Also,parent.env() and parent.env<-() are included to provide directaccess to setting and retrieving environments.o Function nsl() to look up IP addresses of hosts: intended asa way to test for internet connectivity.o Ops(), cbind(), diff() and na.omit() methods for time seriesobjects moved from package ts to package base.o New option `download.file.method' can be used to set thedefault method for download.file() and functions which use itsuch as update.packages().o order() and sort.list() now implement na.last = FALSE, NA.o Started work on new package management system: packageStatus()and friends.o page() has a new `method' argument allowing `method = print'.o png(), jpeg() and bmp() devices now have a `bg' argument toset the background color: useful to set "transparent" on png().o Changes to the postscript() device:- The symbol font can now be set on a postscript() device, andsupport has been added for using Computer Modern type-1fonts (including for symbols). (Contributed by Brian D'Urso.)- There is now support for URW font families: this will giveaccess to more characters and more appropriate metrics onPostScript devices using URW fonts (such as ghostscript).- %%IncludeResource comments have been added to the output.(Contributed by Brian D'Urso.)o predict.ppr() now predicts on `newdata' containing NAs.o princomp() now has a formula interface.o readChar() now returns what is available if fewer charactersthan requested are on the file.o readline() allows up to 256 chars for the prompt.o read.table(), scan() and count.fields() have a new argument`comment.char', default `#', that can be used to startcomments on a line.o New function reg.finalizer() to provide R interface tofinalization.o reshape() extends reshapeLong, reshapeWide, which are deprecated.o rle() now returns a classed object, has a print method andan inverse.o Changes to save() and friends:- save() now takes an envir argument for specifying whereitems to be saved are to be found.- A new default format for saved workspaces has beenintroduced. This format provides support for some newinternal data types, produces smaller save files when savingcode, and provides a basis for a more flexible serializationmechanism.- Modified `save' internals to improve performance when savinglarge collections of code.- save() and save.image() now take a `version' argument tospecify the workspace file-format version to use. Theversion used from R 0.99.0 to 1.3.1 is version 1. The newdefault format is version 2. load() can read a version 2saved workspace if it is compressed.- save() and save.image() now take a `compress' argument tospecify that the saved image should be written using the zlibcompression facilities.- save.image() now takes an argument `ascii'.- save.image() now takes an argument `safe'. If TRUE, thedefault, a temporary file is used for creating the savedworkspace. The temporary file is renamed if the savesucceeds. This preserves an existing workspace if the savefails, but at the cost of using extra disk space during thesave.- save.image() default arguments can be specified in the`save.image.defaults' option. These specifications are usedwhen save.image() is called from q() or GUI analogs.o scan() allows unlimited (by R) lengths of input lines, insteadof a limit of 8190 chars.o smooth.spline() has a new `control.spar' argument and returns`lambda' besides `spar'. spar <= 0 is now valid and allowsto go more closely towards interpolation (lambda -> 0) than before.This also fixes smooth.spline() behavior for "df ~= n - 2". Bettererror messages in several situations.Note that spar = 0 is no longer the default and no longer entailscross-validation.o stars() has been enhanced; new `mar' argument uses smallermar(gins) by default; further `nrow and `ncol' as S-PLUS,`frame.plot', `flip.labels', `lty' and explicit `main', `sub',`xlab' and `ylab'. Note that `colors' has been replaced by`col.segments' and there's a new `col.stars'.stars() now returns the locations invisibly.o step() is now closer to stepAIC() and so handles a wider rangeof objects (but stepAIC [in MASS] is still more powerful).o symbols() now has automatic xlab and ylab and a main argumentwhich eliminates an incorrect warning. It better checks wronglyscaled arguments.o Sys.setlocale() now issues a warning if it fails.o An enhanced function type.convert() is now a documentedfunction, rather than just internal to read.table().o warning() allows multiple arguments, following S4's style.o New function with() for evaluating expressions in environmentsconstructed from data.o Unix x11() devices can now have a canvas color set, which canhelp to distinguish plotting "white" from plotting"transparent".o On Unix, X11(), png() and jpeg() now give informative warningsif they fail to open the device.o The startup processing now interprets escapes in the values ofenvironment variables set in R_HOME/etc/Renviron in a similarway to most shells.o The operator "=" is now allowed as an assignmentoperator in the grammar, for consistency with other languages,including recent versions of S-PLUS. Assignments with "=" arebasically allowed only at top-level and in braced orparenthesized expressions, to make famous errors such as"if(x=0) 1 else 2" illegal in the grammar.(There is a plan to gradually eliminate the underscore as anassignment in future versions of R.)o Finalizers can be registered to be run on system exit for bothreachable and unreachable objects.o integer addition, subtraction, and multiplication now return NA'son overflow and issue a warning.o Printing factors with both level "NA" and missing valuesuses `<NA>' for the missing values to distinguish them.o Added an experimental interface for locking environments andindividual bindings. Also added support for "active bindings"that link a variable to a function (useful for example for linkingan R variable to an internal C global).o GNOME interface now has separate colours for input and outputtext (like the windows GUI). These can be modified via theproperties dialogue.o Output from the GNOME console is block buffered for increasedspeedo The GNOME console inherits standard emacs-style keyboardshortcuts from the GtkText widget for cursor motion, editingand selection. These have been modified to allow for the promptat the beginning of the command line.o One can register R functions and C routines to be called at theend of the successful evaluation of each top-level expression,for example to perform auto-saves, update displays, etc. SeeaddTaskCallback() and taskCallbackManager(). Seehttp://developer.r-project.org/TaskHandlers.pdf.DEPRECATED & DEFUNCTo .Alias has been removed from all R sources and deprecated.o reshapeLong(), reshapeWide() are deprecated in favour of reshape().o Previously deprecated functions read.table.url(), scan.url(),source.url(), httpclient() and parse.dcf() are defunct.Method "socket" for download.file() no longer exists.DOCUMENTATION CHANGESo `Writing R Extensions' has a new chapter on generic/methodfunctions.UTILITIESo New package `tools' for package development and administrationtools, containing the QC tools checkFF(), codoc() and undoc()previously in package base, as well as the following new ones:- checkAssignFuns() for checking whether the final argument ofassignment functions in a package is named `value'.- checkDocArgs() for checking whether all arguments shown in\usage of Rd files are documented in the corresponding\arguments.- checkMethods() for checking whether all methods defined in apackage have all arguments of their generic.- checkTnF() for finding expressions containing the symbols `T'and `F'.o R CMD Rd2dvi has more convenient defaults for its output file.o R CMD check now also fully checks the Depends field in thepackage DESCRIPTION file. It also tests for syntax errors inthe R code, whether all methods in the code have all argumentsof the corresponding generic, for arguments shown in \usage butnot documented in \arguments, and whether assignment functionshave their final argument named `value'.C-LEVEL FACILITIESo arraySubscript and vectorSubscript are now available to packageusers. All "array-like" packages can use a standard method forcalculating subscripts.o The C routine type2symbol, similar to type2str, returns a symbolcorresponding to the type supplied as an argument.o The macro SHLIB_EXT now includes `.', e.g. ".so" or ".dll",since the Mac uses "Lib" without a `.'.o New Fortran entry points rwarn() and rexit() for warnings anderror exits from compiled Fortran code.o A new serialization mechanism is available that can be used toserialize R objects to connections or to strings. Thismechanism is used for the version 2 save format. For now,only an internal C interface is available.o R_tryEval() added for evaluating expressions from C code witherrors handled but guaranteed to return to the calling Croutine. This is used in embedding R in other applications andlanguages.o Support for attach()'ing user-defined tables of variablesis available and accessed via the RObjectTables packagecurrently at http://www.omegahat.org/RObjectTables.BUG FIXESo Fixed share/perl/massage-examples.pl to detect instances ofpar() at the very start of a line.o Fixed Pearson residuals for glms with non-canonicallink.(PR#1123). Fixed them again for weights (PR#1175).o Fixed an inconsistency in the evaluation context for on.exitexpressions between explicit calls to `return' and falling offthe end returns.o The code in model.matrix.default() handling contrasts wasassuming a response was present, and so without a response wasfailing to record the contrasts for the first variable if itwas a factor.o diffinv() could get the time base wrong in some cases.o file.append() was opening all files in text mode: matteredon Windows and classic Macintosh. (PR#1085)o f[] <- g now works for factor f.o substr<-() was misbehaving if the replacement was too short.o The version of `packages.html' generated when building R orinstalling packages had an incorrect link to the style sheet.The version used by help.start() was correct. (PR#1090)o rowsum() now gives character (not factor codes) as rownames.(PR#1092)o plot.POSIX[cl]t now respect the `xaxt' parameter.o It is now possible to predict from an intercept-only model:previously model.matrix.default() objected to a 0-columnmodel frame.o c.POSIXct was not setting the right classes in 1.3.x.o cor(*, use = "all.obs") <= 1 is now guaranteed which ensuresthat sqrt(1 - r^2) is always ok in cor.test(). (PR#1099)o anova.glm() had a missing drop=FALSE and so failed for someintercept-less models.o predict.arima0() now accepts vector as well as matrix`newxreg' arguments.o cbind(d,f) now works for 0-column dataframes. This fixes PR#1102.o plot(ts(0:99), log = "y") now workso method "gnudoit" of bug.report() was incorrectly documented as"gnuclient" (PR#1108)o saving with ascii=TRUE mangled backslashes. (PR#1115)o frac(,) {and others} now adds a gap appropriately. (PR#1101)o logLik.lm() now uses the correct "df" (nlme legacy code).o closeAllConnections() works again, and closes all sink() diversions.o sink(type="message") works again.o sink.number was (accidentally) returning the result invisibly.o as.POSIXct("NA") (or ..lt) now work; hence, merge(*, all=TRUE) nowworks with dataframes containing POSIXt date columns.o integer(2^30+1) and similar ones do not segfault anymore but dulyreport allocation errors.o seq(0, 0, 1) now works (PR#1133).o reshapeWide() got it wrong if the "i" factor was not sorted (thefunction is now deprecated since reshape() is there, but the bugstill needed fixing...)o PR#757 was fixed incorrectly, causing improper subsetting ofpch etc. in plot.formula().o library() no longer removes environments of functions that arenot defined in the top-level package scope. Also, packagesloaded by require() when sourcing package code are now visiblein the remaining source evaluations.o names(d) <- v now works (again) for "dist" objects d. (PR#1129)o Workarounds for problems with incompletely specified date-timesin strptime() which were seen only on glibc-based systems(PR#1155).o promax() was returning the wrong rotation matrix. (PR#1146)o The [pqr]signrank and [pqr]wilcox functions failed to check thatmemory has been allocated (PR#1149), and had (often large)memory leaks if interrupted. They now can be interrupted onWindows and Mac OS and don't leak memory.o range(numeric(0)) is now c(NA, NA) not NA.o round(x, digits) for digits <= 0 always gives an integralanswer. Previously it might not due to rounding errors infround. (PR#1138/9)o Several memory leaks on interrupting functions have beencircumvented. Functions lqs() and mve() can now beinterrupted on Windows and Mac OS.o image() was finding incorrect breakpoints fromirregularly-spaced midpoints. (PR#1160)o Use fuzz in the 2-sample Kolmogorov-Smirnov test in packagectest to avoid rounding errors (PR#1004, follow-up).o Use exact Hodges-Lehmann estimators for the Wilcoxon tests inpackage ctest (PR#1150).o Arithmetic which coerced types could lose the classinformation, for example `table - real' had a class attributebut was not treated as a classed object.o Internal ftp client could crash R under error conditions suchas failing to parse the URL.o Internal clipping code for circles could attempt to allocatea vector of length -1 (related to PR#1174)o The hash function used internally in match(), unique() andduplicated() was very inefficient for integers stored asnumeric, on little-endian chips. It was failing to hash theimaginary part of complex numbers.o fifo() no longer tries to truncate on opening in modesincluding "w". (Caused the fifo example to fail on HP-UX.)o Output over 1024 characters was discarded from the GNOMEconsole.o rug() now correctly warns about clipped values also for logarithmicaxes and has a `quiet' argument for suppressing these (PR#1188).o model.matrix.default was not handling correctly contrasts.argwhich did not supply a full set of contrasts (PR#1187).o The `width' argument of density() was only compatible with Sfor a Gaussian kernel: now it is compatible in all cases.o The rbinom() C code had a transcription error from the originalFortran which led to a small deviation from the intendeddistribution. (PR#1190)o pt(t, , ncp=0) was wrong if t was +/-Inf.o Subsetting grouping factors gave incorrect degrees of freedomfor some tests in package ctests. (PR#1124)o writeBin() had a memory leak.o qbeta(0.25, 0.143891, 0.05) was (incorrectly) 3e-308. (PR#1201)o Fixed alignment problem in ppr.f on Irix. (PR#1002, 1026)o glm() failed on null binomial models. (PR#1216)o La.svd() with nu = 0 or nv = 0 could fail as the matrix passedto DGESVD was not of dimension at least one (it was a vector).o Rownames in xcoef and ycoef of cancor() were wrong if x or ywas rank-deficient.o lqs() could give warnings if there was an exact fit. (PR#1184)o aov() didn't find free-floating variables for Error() terms whencalled from inside another functiono write.table() failed if asked to quote a numerical matrix withno row names. (PR#1219)o rlnorm( *, *, sd=0) now returns the mean,rnbinom(*, *, prob=1) gives 0, (PR#1218).*************************************************** ** 1.3 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.3.1NEW FEATURESo massage-examples is now a Perl script and about 50x faster.o On Unix(-alike) systems the default pager is now determinedduring configuration, and is `less' if available, otherwise`more' (and not `more -s' as previously).o configure now tests for strptime functions that fail on inputsbefore 1970 (found on Irix). It no longer checks for the SCSLand SGIMATH libraries on Irix.o New formula interface to cor.test() in package ctest.o "NA" is now a valid color name (as NA has been a valid integercolor).o pairs() function has a new `gap' argument for adjusting thespacing between panels.o R CMD check has a new test for unbalanced braces in Rd files.o readBin() has a new argument `signed' to simplify readingunsigned 8- and 16-bit integers.o New capabilities() option "cledit".o Modified restore code to give clearer error messages in some cases.BUG FIXESo Fixed placement of mtext() output (including tick labels)when text is perpendicular to axis AND axis is logged(PR#997 and PR#865).o rect() and arrows() now respond to setting of par(xpd)o abline() now responds to the setting of par(xpd), includingvia the "..." argument (PR#750).o Using cat() to a gzfile() connection no longer compresses poorly(at the expense of some latency).o The `exact' p-values for the two-sided two-sampleKolmogorov-Smirnov test in 1.3.0 were for the wrong tail.o In the HTML conversion of .Rd files, \link[foo]{bar} wasignoring [foo] outside \code{} statements.o lm.influence(), plot.lm(), influence.measures() and therelated diagnostic measures now handle lm() fits withna.action=na.exclude.o Eliminated segmentation fault in while loops without bracesin their bodies.o barplot did not accept NA heights unless ylim was specified.o predict.lm() failed with single-column model matrix (PR#1018).o legend() now also works with 100s of entries (thanks toM. Schlather).o A long-standing bug leading to inaccuracy in polyroot() has beenfixed (PR#751)o A very old bug with eval() not handling a numeric `envir' argumentaccording to specifications has been fixed. [This in particularbroke ported S-PLUS code that used eval(..., sys.parent())]. Also,eval() now checks that a numeric `envir' has length one to preventaccidental passing of matrices instead of data frames.o The C code underlying nlm(f, *) now also works correctly when f(x)returns +Inf {nlm() itself *did* work!}.o pdfcolor.tex is now included in doc/manual, as pdftex seems nolonger to include it.o Fixed protect bug in save() code that might have been responsiblefor occasionally saving corrupted workspaces.o capabilities("X11") now reports if X11 is available in thissession, thereby giving the correct answer if --gui=none wasspecified.o Rd files with ,, inside \code{} were treating this as aligature in LaTeX: now corrected in Rdconv.o dlopen on Compaq Tru64 was finding the wrong entry points:worked-around by using different names in the modules.o plot.mts() allows a type argument again (broken in 1.3.0: PR#1010).o scan() has a limit of 8190 on the length of char strings, andnow warns if it is exceeded (when the string has always beentruncated).o par adj now accepts values of integer mode (such as text(adj=0:1)).o horizontal adj values outside the range [0, 1] are nowsupported on devices with canHAdj==1 (Windows devices, xfig).o xtabs() without a response was ignoring drop.unused.levels=TRUE.o readLines(ok=FALSE) was not generating an error when it should.o princomp(covmat=) has been broken.o Many documentation clean-ups: formerly undocumented arguments,use of T/F rather than TRUE/FALSE.o df[] <- foo now works for data frames (PR#1047).o nargs() was documented incorrectly.o Using seq.POSIXt(by="2 weeks") was stepping by single weeks(PR#1046).o dummy.coef.lm was not handling complex terms like z:I(x).It now either does or warns and gives NAs (PR#1048).o predict.mlm() was broken (PR#1049).o ksmooth (in package modreg) was using points to the leftof the kernel under some circumstances (PR#1050).o attr(x, "class") <- character(0) was segfaulting. Similar problemwith "comment" attribute also fixed.o loadings() results from PCA (as well as from factor analysis)are now printed by print.loadings.o Using chol() on an non-positive-definite matrix gave anmisleading error message (PR#1061).o as.character() on a language object was truncating to about 70characters: the internal limit (from the deparse code) is now themaximum possible 500.o X11() device was failing to re-initialize correctly after alldevices were shut down, so the colortype could not be changedand some systems showed protocol errors. (PR#1065)o Converting Inf and NaN values by as.character() and reading byscan() was supported by strtod on some platforms and notothers: these are now handled by R itself. (PR#1072)o hclust(dist(1)) doesn't loop infinitely but signal an error.o cutree() can now cut outside heights and does not returngarbage for h >= max(tree$heights) anymore. (PR#1067)o interaction(...,drop=F) returned an object looking like afactor, but with storage mode "double", confusingmodel.matrix.default (PR#1003)o splineDesign(*, ord=) and others give better error messages forwrong `ord' (and have slightly improved documentation).CHANGES IN R VERSION 1.3.0NEW FEATURESo Changes to connections:- New function url() to read from URLs. file() will alsoaccept URL specifications, as will all the functions whichuse 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 connectionscan be read with a user-specified encoding.- New functions readChar() and writeChar() to read characterstrings with known lengths and no terminators, and to writeuser-specified lengths from strings.- sink() now has a stack of output connections, following S4.- sink() can also be applied to the message stream, to captureerror messages to a connection. Use carefully!- seek() has a new `origin' argument.- New function truncate() to truncate a connection open forwriting at the current position.- Socket connections via function socketConnection().- The `blocking' argument for file, fifo and socket connectionsis 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/timedifferences, and a round() method.- Subtraction and logical comparison of objects from differentdate/time classes is now supported. NB: the format for thedifference of two objects of the same date/time class haschanged, but only for objects generated by this version, notthose generated by earlier ones.- Methods for cut(), seq(), round() and trunc() for date/timeclasses.- 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-rangevalues, 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 asvar.test() in package ctest now have formula interfaces.o Matrix multiplication functions %*% and crossprod() now use alevel-3 BLAS routine dgemm. When R is linked with the ATLASor other enhanced BLAS libraries this can be substantiallyfaster than the previous code.o New functions La.eigen() and La.svd() for eigenvector andsingular value decompositions, based on LAPACK. These arepreferred to eigen() and svd() for new projects and can makeuse of enhanced BLAS routines such as ATLAS. They areused in cancor(), cmdscale(), factanal() and princomp()and this may lead to sign reversals in some of the output ofthose functions.o Provided the Fortran compiler can handle COMPLEX*16, thefollowing routines now handle complex arguments, based onLAPACK 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 issubstantially 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 themean 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 capabilitiessuch 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, orinteger.o coplot() has a new argument `bar.bg' (color of conditioning bars),gives nicer plots when the conditioners are factors, and allowsfactors for x and y (treated almost as if unclass()ed) using newargument `axlabels'. [original ideas by Thomas Baummann]o `hessian' argument added to deriv() and its methods. A new functionderiv3() 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 forpar(ask=*) in multifigure plots.o dist() in package mva can now handle missing values, andzeroes in the Canberra distance.o The default method for download.file() (and functions which useit such as update.packages()) is now "internal", and uses codecompiled 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-PLUScompatibility (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 withina specific DLL/shared library.o Exact p-values are available for the two-sided two-sampleKolmogorov-Smirnov test.o lm() now passes `...' to the low level functions for regressionfitting.o Generic functions logLik() and AIC() moved from packages nlsand nlme to base, as well as their *.lm methods.o New components in .Machine give the sizes of long, long long andlong 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 seton the data frame (needed to distiguish the response, forexample).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 handleddifferently by naresid() and napredict().The default, lm and glm methods for fitted, residuals, predictand weights make use of these.o New function oneway.test() in package ctest for testing forequal means in a one-way layout, assuming normality but notnecessarily equal variances.o options(error) accepts a function, as an alternative toan expression. (The Blue Book only allows a function; currentS-PLUS a function or an expression.)o outer() has a speed-up in the default case of a matrix outerproduct (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', hasnew optional arguments and uses a much better layout when morethan one page of plots is produced.o plot.mts() has a new argument `panel' providing the samefunctionality as in coplot().o postscript() allows user-specified encoding, with encoding filessupplied for Windows, Mac, Unicode and various others, and withan appropriate platform-specific default.o print.htest() can now handle test names that are longer thanone 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 ofrecords (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 crossline boundaries by default).o sort(x) now produces an error when x is not atomic instead ofjust returning x.o split() now allows splitting on a list of factors in which casetheir 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 intoparagraphs.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 withrelated functions. The old names are deprecated. Argument`package' must now specify a single package.o The Wilcoxon and Ansari-Bradley tests now return pointestimators of the location or scale parameter of interest alongwith confidence intervals for these.o New function write.dcf() for writing data in Debian Control Fileformat. parse.dcf() has been replaced by (much faster) internalread.dcf().o Contingency tables created by xtabs() or table() now have asummary() method.o Functions httpclient(), read.table.url(), scan.url() andsource.url() are now deprecated, and hence method="socket' indownload.file() is. Use url connections instead: inparticular URLs can be specified for read.table(), scan() andsource().o Formerly deprecated function getenv() is now defunct.o Support for package-specific demo scripts (R code). demo() nowhas new arguments to specify the location of demos and to allowfor running base demos as part of `make check'.o If not explicitly given a library tree to install to or removefrom, respectively, R CMD INSTALL and R CMD REMOVE now operateon the first directory given in `R_LIBS' if this is set andnon-null, and the default library otherwise.o R CMD INSTALL and package.description() fix some common problemsof DESCRIPTION files (blank lines, ...)o The INSTALL command for package installation allows a `--save'option. Using it causes a binary image of the package contentsto be created at install time and loaded when the package isattached. This saves time, but also uses a more standard wayof source-ing the package. Packages that do more than justassign 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, itscontents should be R commands executed at the end of loadingthe image.There is also a new command line option `--configure-vals' forpassing variables to the configure script of a package.o R CMD check now also checks the keyword entries against the listof standard keywords, for code/documentation mismatches (thiscan be turned off by the command line option `--no-codoc'), andfor sufficient file permissions (Unix only). There is a new checkfor 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 manualsfor 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 theCXML/DXML BLAS libraries on Alphas.o Perl scripts now use Cwd::cwd() in place of Cwd::getcwd(), ascwd() can be much faster.o R::Dcf.pm can now also handle files with more than one recordand checks (a little bit) for continuation lines without leadingwhitespace.o New manual `R Installation and Administration' with fullerdetails on the installation process: file `INSTALL' is now abrief introduction referencing that manual.o New keyword `internal' which can be used to hide objects thatare not part of the API from indices like the alphabetical listsin the HTML help system.o Under Unix, shlib modules for add-on packages are now linkedagainst R as a shared library (`libR') if this exists. (Thisallows for improved embedding of R into other applications.)o New mechanism for explicitly registering native routines in aDLL/shared library accessible via .C(), .Call(), .Fortran() and.External(). This is potentially more robust than the existingdynamic lookup, since it checks the number of arguments, type ofthe routine.o New mechanism allowing registration of C routines for convertingR objects to C pointers in .C() calls. Useful for references todata in other languages and libraries (e.g. C and hdf5).o The internal ftp/http access code maintains the event loop, soyou can download whilst running tcltk or Rggobi, say. It canbe hooked into package XML too.BUG FIXESo boxplot.stats() now returns the correct `n' component in the case ofNAs. This also affects `conf', the notch length (PR#967).o the "coef = 0" fix (PR#917) to boxplot.stats() brokeboxplot.stats(do.out = FALSE).o curve(* , add = FALSE) now works correctly again if used whenpar("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 emptydata frame. as.matrix(df), deparse(), dput() and str() now workfor empty data frames.o dbeta() could return zero erroneously on some platforms whereroundoff makes e.g. 1.3 - 1 > (1.3 + 1) - 2 (Solaris and HP-UXwere affected). (PR#970)o pointer protection in deriv() (PR#953)o expand.data.frame() didn't interpret its subset= argument inthe 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 forequi-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 inthe one-sample case reversed (PR#934).o ls.str() and lsf.str() now work better with pos > 1, and arecorrectly 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 inrank-deficient cases).o sign of Pearson residuals was wrong for reciprocal link (PR#862)o The algorithm for determining starting estimates in the SSfplself-starting model in the nls package was changed following asuggestion by Phillipe Grosjean <phgrosje@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 thecurrent function was already a function (e.g., a closure).o tapply() had "..." argument after simplify=, which made itincompatible 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 mechanismindicated that there was an operator `%'. Corrected (PR#925).o Fixed some cases where the deparser gave code that threw asyntax 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 wasincorrectly 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 wasa tie at the very right.*************************************************** ** 1.2 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.2.3NEW FEATURESo Support for configuration and building the Unix version of Runder Mac OS X. (The `classic' Macintosh port is `Carbonized'and also runs under that OS.)o dotchart() and stripchart() become the preferred names fordotplot() and stripplot(), respectively. The old names are nowdeprecated.o Functions in package ctest now consistently use +/-Inf ratherthan NA for one-sided confidence intervals.BUG FIXESo `Writing R Extensions' incorrectly described an entry point`fmod' which was not included in the R binary on most systems.The entry point has been removed, to avoid any confusion withthe standard C entry point of the same name.o Printing of kernels in package ts was unreliable: the internalrepresentation was correct.o A problem with "..." in substitutions has been fixed (PR#860).o Various strangeness with match.call() and "..." has been fixed(PR#813).o sys.function() could return an unevaluated promise, messing upformals() and match.arg() (PR#872)o Deparsing or dumping attributes with non-standard names wasnot quoting the name (PR#871).o We now use match.fun() in tapply() so that it won't get trappedby non-functions masking FUN.o The `nmax' argument in scan(what=list(...), nmax=300) wascounting blank lines, although they were said to be ignored.This affected using read.table on files with blank lines in1.2.2, and using `n' with `what' a list.o as.numeric(), as.integer(), as.complex() returned zero oncompletely blank strings. Now they return NA. (PR#870)o Overflow in deparse() in terms(formula) with very long left-handside fixed. (PR#873)o lowess(c(1:3, 7:5)) now should give the same on different platforms,since now in the C code (int)(f*n + 1e-7) is used.o curve(*, add = TRUE) now works properly with active log scales.o rt() could give different results on different platforms asthe order of evaluation of calls to random numbers was notfully defined. This affected the Mac port.o ppr() inside nested calls sometimes failed to find objectsdue to a typo in the eval call in ppr.formula.o qchisq(0.025, 31, ncp=1, lower.tail=FALSE) now works. (PR#875)o dchisq with integer x, df and ncp sometimes gave incorrectresults on i686 Linux.o Cancelling a quit caused quit() not to ask next time it was called.o Some complicated operations with "..." didn't work.o Missingness was not correctly propagated in some cases.o eigen() segfaulted on 0-dimensional matrices.o nls( ~ rhs, ..) now works (formula with empty left hand side).o The fuzz added in hist() for 1.2.2 broke the logic testing forequidistant breakpoints.o Calls to replacement functions ("f<-") lost argument names(PR#888).o is.na() and is.nan() gave random results on lists containingzero-length objects.o cor(), cov() and var() gave a result on a zero-length argument(now an error). cov(x, NULL) and cor(x, NULL) are now errorsif x is a vector. (PR#883).o ?smooth.spline now properly describes `spar' which is *not*lambda. smooth.spline(1:20, spar = 50) gives an error insteadof silent nonsense. print.smooth.spline() now makes use of adigits argument.o Confidence intervals for wilcox.test() had the samples reversedin the two-sided case (PR#895), and sometimes got continuitycorrection wrong (PR#896).o Using out-of-range font values in text() on a postscript()device on Windows could crash. .ps.prolog was incorrectlynamed in some of the documentation. (PR#914)o Warning messages of > 8191 chars could crash R (PR#902), ascould errors. Now they are truncated to 8191 chars onmachines which have vsnprintf (almost all).o range() now works properly for date-time objects.o contour() could loop infinitely (PR#897).o R-lang manual had precedence of %% wrong (PR#879).o try() constructs lost protection of R_alloc'ed memory (PR#877).o Documented that as.numeric() dispatches to as.double.foo methods(PR#918.1).o httpclient() (and the "socket" method of download.file) skipped ^Vrather than ^Z in input (if drop.ctrl.z = TRUE, the default).o boxplot(*, range = 0) and boxplot.stats(*, coef = 0) nowdon't return outliers anymore (PR#917).o segmentation fault with tmp[[1,]] (PR#904)o incorrect "..." handling in plot.factor (PR#830)CHANGES IN R VERSION 1.2.2NEW FEATURESo The Macintosh port becomes a full member of the R family and itssources are incorporated as from this release.See `src/macintosh/INSTALL' for how that port is built.o The API header files and export files `R.exp' are released underLGPL rather than GPL to allow dynamically loaded code to bedistributed under licences other than GPL.o postscript() and xfig() devices now make use of genuine Adobeafm files, and warn if characters are used in string width orheight calculations that are not in the afm files.o Configure now uses a much expanded search list for finding aFORTRAN 77 compiler, and no longer disallows wrapper scripts forthis compiler.o New Rd markup \method{GENERIC}{CLASS} for indicating the usageof methods.o print.ftable() and write.ftable() now have a `digits' argument.o undoc() has a new `lib.loc' argument, and its first argument isnow called `package'.BUG FIXESo The behaviour of polygon() with NA coordinate values is nowdocumented.o polygon() now correctly recycles the values of border and lty.Thanks to Denis White.o readBin() and writeBin() were not always making good use oflong types (such as long double) when available.o The C function fprec was not handling very small denormalizednumbers correctly. This affected the way they were printed onWindows, for example.o legend() now draws points after lines allowing "empty dots onlines" thanks to Ben Bolker.o Setting row/column names preserves the names of the dimnames(PR#809).o Using help() after help.start() on Unix was failing to findthe linked help files if more than one package was loaded (asnow happens by default).o scan now sets the maximal sizes internally when `what' is a listfrom `nmax' and failing that `nlines'. This uses memory muchmore efficiently if `nmax' is specified. read.table() makes useof this.o The FORTRAN code used is now much closer to ANSI compliance.o cov.rob() gives a useful error message on nearly-degeneratematrices.o summary() on a data frame was computing results to a precisionbased on options("digits") (default 4), not its `digits'argument. Now results are computed to full precision butformatted using `digits'.o summary(m, digits=*) also properly works for matrices.o When returning parameters from .C/.Fortran, the OBJECT field wasnot copied even though class attributes were (PR#834).o There was a spurious warning from the X11 driver on 100 dpidisplays (PR#840, fix from Tom Vogels).o scan() was reading all-blank numeric fields as zero.Should be read as NA, and are now.o dnbinom(*, size, *) now works again for size < 1 (PR#842).o dgeom(*, p = 0) and pgeom(*, p = 0) don't give NaN anymore.o smooth.spline() allows zero weights again.o aperm() fix for list arg; aperm(*, resize=FALSE) now works withdimnames (by dropping them).o The xfig() driver was not closing unclosed polygons as the Rdriver expected (but did not document).o spec.ar() now handles order 1 correctly.o Add fuzz to prevent anomalies with hist().o print.matrix() checks length of rowlab, collab (PR#850)o add1.glm() was using the wrong weights for binomial glms incbind(successes, failures) ~ lhs form, since 1.2.0.o Eliminate packing of the `structRstart' structure, which wasprobably non-ISO C and caused some compilers problems (PR#852).o all.vars() no longer returns empty `names' (PR#829).o dotplot() passes `cex' down to the mtext() calls used for thelabels (PR#816).o The pictex() driver was drawing polylines incorrectly (PR#845).o In the event of a fatal X11 error (this can be generated under FVWMby selecting Destroy), the input handler would loop, leaving the"please save work and shut down R" advice useless. There should nowbe an opportunity for a relatively graceful exit.o polyroot() misbehaved if all coefficients except that of the highestdegree term were zero (partial fix for PR#751)o spline(method="natural") was extrapolating incorrectly (bothto the left and to the right, for different reasons). (PR#653)o Line clipping was incorrect for log-plots. (PR#839)o Add explicit test for rank-deficient residuals to summary.manova().o The help search data bases did not contain the data from theplatform-specific help files.o parse.dcf() and hence package.contents() now work with a warningfor empty contents' files.o which.min() and which.max() now properly work for 0-length andNA-only arguments.CHANGES IN R VERSION 1.2.1NEW FEATURESo New functions factanal(), varimax(), promax() and examples inpackage mva.o New functions readBin() and writeBin() to transfer binary datato and from connections.o merge() is partially moved to C to reduce its memory usage.o library(help = PKG) now displays the contents of the package'sDESCRIPTION file in addition to its INDEX.o Sd2Rd can handle S4-style documentation too: see `Writing RExtensions'.o prompt() now also works with a character argument (useful forproducing many *.Rd files in a loop).o The Unix front-end shell script now ignores a value for R_HOMEfound in the environment.o Connections functions such as file() now accept a description oflength > 1, with a warning.o All text-mode connections now accept input with LF, CR or CRLFline endings. This means that readLines() can be used on DOSfiles and source() on Mac files, for example.Also, CRLF-terminated files can be used as stdin on Unix, andfiles with last lines without an EOL mark can be used as stdinand source()-ed on Unix and Windows.o DESCRIPTION file has a new recommended `Maintainer:' field.o stars() now uses a larger "cex" for the labels, and cex and lwdare now arguments. Further, the argument names (xlim, ylim,axes) are now consistent with other plot functions. The key symbolis not clipped anymore into the plot region by default.o Date-time quantities are now printed with the timezone, if known.o R CMD build now ignores all files specified (via Perl regexps)in file `.Rbuildignore' in the top-level source directory of apackage.o Horizontal boxplots are possible with horizontal = TRUE.o all.equal() on lists now compares them as generic vectors, thatis they are equal if have identical names attributes andall components are equal.o Invalid lines in .Renviron now give warnings when R is started.o Argument `na.last' implemented for rank().BUG FIXESo There have been many small improvements/corrections in thedocumentation. In particular:The help pages for lm and glm now describe the fitted objects.is.vector() is now correctly documented: complex vectors andlists return TRUE.o The default sortedXyData constructor in the nls package nowhandles missing values in the response.o On startup, file .RData is now restored *after* the site anduser profiles are loaded (if at all). This is as previouslydocumented.o as.POSIXlt (and *ct) operating on a character stringonly extracted the date (and not the time) in some cases.o as.POSIXct() on character objects was ignoring `tz'.o codoc(ignore.generic.functions = TRUE) works again.o Explicitly close files opened by sink() for OSes (such asWindows) that benefit from it.o Prevent closing the sink connection (which would be a sillything to do).o showConnections(all = TRUE) was sometimes counting connectionsincorrectly, and so not showing some closed ones.o ts(1:10, start= c(1999,6), end = c(2000,3), frequency = 12)now prints both years (as it should).o Monthly multivariate time series now print proper month namesin all cases.o print.stl(), print.princomp() and print.prcomp() now pass on`digits =' etc.o prompt() now produces a \usage{} line for data frames andother datasets, as documented in `Writing R Extensions'.o glm() now returns correct linear predictor and fitted valuesfor zero-weight cases.o scan(strip.white=TRUE) and readline() could give incorrectanswers when an input field was empty or blank.o dchisq() now behaves better for large values of its ncp parameter.o besselJ(*, nu) is now ok for nu < 1; fix improves accuracy ofother values by a few bits as well.o The convergence criterion in the Fortran SVD code has beenchanged to circumvent spurious convergence errors whencomparing extended-precision quantities on ix86 Linux (andsome compilers and options).o Rdindex now handles multi-line \title{}'s correctly.o Add weights.glm() so that plot.lm() gets the correct weights fromglm objects (the ones that go with deviance residuals not theworking residuals).o Printing a language object (e.g. a formula) in a list wasclobbering the buffer holding the tag labels which then werelost in subsequent lines of printout (PR#746).o aic in family() objects is now computed more precisely usingdxxxx(log=TRUE). For binomial fits the value was wrong formodels specified via proportions and weights (PR#796).Avoid NaN values in aic where n = 0 occurs.o Using non-integer numbers of successes in a binomial glm (asformerly in demo(lm.glm)) now gives a warning, as the theory andin particular the AIC value is not applicable.o demo(is.things) works again {is.ALL() doesn't call methodsanymore}.o persp(*, nticks = nn) now works (better) for too small nn.persp(*, main = t1, sub= t2) now work (as always documented).o Printing of attributes of a list element no longer precedes`attr' by the tag (PR#715).o It is no longer possible to use df[foo] to select non-existentcolumns in df and so create an invalid object of class"data.frame" (PR#698).o edit.data.frame() was trying to set row.names on a list, whichis no longer allowed.o In the \link[pkg]{topic}, `pkg' was not being used if `topic'was found in a package in .lib.loc. Now `pkg' is always used.o plot() with small relative ranges gave an error, which e.g. brokelibrary(ts); plot(stl(ts(rep(1:7, 15), freq = 7), s.win = "per"))o Using scan() with a 0-length `what' argument now gives an errormessage rather than a segfault.o Loading .Random.seed could extremely rarely and with somegenerators reject a value as NA_INTEGER when it was valid.o save(..., ascii=TRUE) created broken files when saving stringscontaining special characters (ASCII code > 127).o mean(c(1,NA,NA,NA)[-1], trim = .1, na.rm = TRUE) doesn't give anerror anymore.o As the supplied afm files are not properly in the ISOLatin1encoding, the font metric for "-" was wrong since 0.63 on apostscript/xfig device, and randomly wrong in 1.2.0. It willnow be correct (but the files remain incorrect: C45 is "minus"not "hyphen" and there are missing slots).Metrics for the duplicated characters (acute, dieresis,macron, space) in ISOLatin1 encoding are now correct for bothoccurrences: previously only one was present.o The data-time functions try harder to guess the DST settingwhen the OS does not know, as some OSes were printing timesin DST if this was marked as unknown.o Setting par(pty=) after par(pin=) or par(plt=) was having noeffect until the margins were set.o Nested \describe sections in .Rd files have (again) nestedindentation when converted to text.o Concatenation of C strings by ## is no longer used, to avoidspurious warnings from some recent versions of gcc.o dev.copy2eps() allows a `paper' argument to be passed topostscript().o file.show() handles the case of zero files better.o formula.lm uses object$formula if it exists, in preferenceto object$terms.o strsplit() is corrected for an empty split pattern.o kronecker() now does a better job when creating dimnames.o Better handling of input dimnames in fourfoldplot().CHANGES IN R VERSION 1.2.0NEW FEATURESo There is a new memory management system using a generationalgarbage collector. This improves performance, sometimesmarginally but sometimes by double or more. The workspace isno longer statically sized and both the vector heap and thenumber of nodes can grow as needed. (They can shrink again,but never below the initially allocated sizes.) See ?Memoryfor a longer description, including the new command-lineoptions to manage the settings.o values of `--min-nsize' up to 50M (2Gb on 64-bit Solaris) areallowed.o A (preliminary) version of S4-like connections has been added,and most functions which take a "file" argument can now workwith a connection as well as a file name. For more details,see the chapter on Connections in the R Data Import/Exportmanual.o New command-line option `--no-restore-history' implied by`--vanilla'.o Command-line option `--no-restore' is now `--no-restore-data'and `--no-restore' implies `--no-restore-*' (currently `data'and `history').o The more recent GNU regex from grep-2.4.2 is used. This useslocale-based ordering for ranges on platforms with strcoll.o The print routines now escape " (as \") in a character stringonly when it is printed as a quoted string. This makesprint(, quote=FALSE) and cat() consistent.o The standard methods for add1() and drop1() now attempt to copewith missing values by using a subset of the data that is`cleaned' by na.action for the maximal model under consideration.o anova() for 3 or more lm objects now behaves compatibly with Sand anova.glmlist(). The old behaviour is still available bycalling anovalist.lm() directly.o anova() for multiple lm and glm objects no longer truncates theformula printed. There is much more extensive documentationfor anova() methods.o New method as.data.frame.table() for converting the array-basedrepresentation of a contingency table to a data frame containingthe classifying factors and the corresponding counts.o New function assocplot() for producing Cohen-Friendlyassociation plots.o autoload() accepts lib.loc and other arguments to library()o bxp() has new argument `frame.plot', as plot.default().o contour() now has `axes' and `frame.plot' args.o contrasts(, FALSE) now always returns an identity matrix,to make model.matrix compatible with S. This affects modelssuch as lm(y ~ o - 1) where o is an ordered factor.o `where' command added to debug().o demo(dynload) (which used the superseded call_R interface)has been removed.o Class "dendrogram" in package mva providing general supportfor tree-like structures (plotting, cutting, ...).o dev.copy2eps() and dev2bitmap() preserve the aspect ratio of thecopied device if just one of `width' and `height' is specified.o dump() has new argument append, argument `fileout' has beenrenamed to `file' (for consistency with all other functions).o edit.default() now checks for an unset `editor' argument, andterminates with an error if the editor cannot be run.o The `mode' argument of exists() and get() is interpretedas mode(x) rather than typeof(x), following S.o New functions file.access() and file.info() for information onfiles on the user's file systems.o New convenience function file.copy().o file.show() allows `pager' argument to be an R function, andconsequently, the `pager' option can be an R function.o Formatting (and printing) of data.frames with complex objects isimproved. toString was added as a new function.o format() has a new argument `justify' controlling thejustification of character strings (and factors).o Formula objects now have an environment and code manipulatingthem needs to take care to preserve it or set an appropriateenvironment.o New function fourfoldplot() for producing fourfold displays of2 by 2 by k contingency tables.o gc() now reports the space allocated, not the space free,since the total space is now variable.o New primitive gc.time() to report on time spent in garbagecollection.o hclust() takes new argument `members' allowing dissimilaritymatrices both for singletons (as until now) and clusters.o help() has an additional `pager' argument which may be passed tofile.show() {useful for ESS fans}.o There is now an R `Hershey' list object for Hershey vector fontcomputations and documentation.o hist() now returns a "histogram" object and calls the newfunction plot.histogram() for plotting.It now also allows character labels.o if(*) now gives a more intelligible error messagewhen "*" cannot be coerced to logical.o inherits() is now an internal function and compatible with S.o New function lag.plot() in package ts.o legend() has a new argument pt.bg.o The commands history can be loaded with loadhistory(), savedwith savehistory() and displayed with history(), under Windowsand under Unix using the readline or GNOME interfaces.o mad() has new (logical) arguments "low" and "high" (the firstgiving S compatibility).o New function manova() and summary method.o Function mantelhaen.test() in package ctest now can deal withgeneral I x J x K tables. In addition, in the 2 x 2 x K case,it can also perform an exact conditional test of independence,and gives confidence intervals for the common odds ratio.o model.frame() now uses the environment of its formula argument,rather than the parent environment, to evaluate variables notfound in the data argument. See help(formula).o mosaicplot() can now also create extended mosaic plots, whichvisualize the residuals from a log-linear model using color andoutline.o New utility function n2mfrow().o nlm(check.analyticals = TRUE) now warns if the suppliedgradient and/or hessian are of the wrong length.o New function object.size() to give approximate memory allocation.o optim() now checks the length of an analytical gradient ateach evaluation.o The L-BFGS-B method of optim() now support tracing, at severallevels of detail.o options(check.bounds = TRUE) makes each vector extensionby sub-assignment ("x[.] <- .") produce a warning.o options(width) now admits to a limit (previously 200, now10000) and gives a more informative message if out of range(as it does now for digits and expressions).o Function path.expand() to do tilde-expansion on file paths.This provides an interface to R_ExpandFileName, which is nowa documented entry point.o .Platform has new component "endian", useful for binary filemanipulations.o plot.function() and curve() now take xlim as default for (from,to)if the former is specified.o plot.hclust() allows arguments main, sub, etc, and has non-emptydefaults for these.o plot.ts(x,y) now allows to suppress labels and lines;it is better documented.o The postscript() driver now allows a user-specified family so,for example, one can use the same fonts in diagrams as inrunning text.o The postscript() driver allows its prolog to be changed (by anexpert) via object .ps.prolog.o prop.table() and margin.table() now work with an empty `margin'.o Formerly deprecated function provide() is now defunct.o New functions read.delim() and read.delim2() to make iteasier to read delimited files as Windows programs tend tocreate (usually TAB separated).o New readLines() function to read a file line-by-line.o New functions reshapeLong() and reshapeWide() emulating Stata'sreshape command. These are still labeled experimental andmight be improved (or removed) in later versions.o row.names() and row.names<-() are now generic functions whichcall rownames() as their default method and have methods forclass "data.frame".o New function Rprof() for profiling R expressions under Unix.Configure with `--enable-R-profiling' (on by default) to makethis operational.o save(, oldstyle=TRUE) has been withdrawn.o scan() and read.table() have a new argument `fill' which canbe set TRUE to allow reading files with unequal number offields per line. (Programs like Excel have a habit of creatingsuch files when exporting.)o scan() and read.table() have a new argument `blank.lines.skip'to allow blank lines to be read.o scan() now reads empty character fields as "" not "NA" unless"" is included in na.strings.o smooth() in package eda has a better default (3RS3R instead of3RSR) and more arguments, e.g. `twiceit' for some Scompatibility and `kind = "3R"' for running medians of 3.o strsplit() has a new argument `extended' controlling whether touse extended (the default) or basic regular expressions forsplitting.o Sys.getenv() becomes the preferred name for getenv(), which isnow deprecated.o New functions Sys.getlocale() and Sys.setlocale() to query andset aspects of the locale of the R process, andSys.localeconv() to find the default decimal point, etc.o New function Sys.info() for platform, host and user information.o New function Sys.putenv() to set environment variables.o New function Sys.sleep() to suspend execution for a while.o Date-time support functions with classes "POSIXct" and"POSIXlt" to represent dates/times (resolution 1 second) inthe POSIX formats. Functions include Sys.time(), as.POSIXct(),strftime(), strptime(), and methods for format, plot, c, ....There are conversion functions for objects from packages`date' and `chron'; unlike those packages these supportfunctions know about time zones (if the OS does).o tcltk package now has tkpager() which is designed to be usedby file.show() and shows help pages etc. in separate textwidgets.o tcltk is now more careful about removing the objectsrepresenting widgets in the R workspace when the windows aredestroyed (e.g. using window manager controls)o tcltk package has had several canvas functions implemented.o tcltk now wraps callbacks to R in a try() construct - thenonlocal return from R's error handling could bring the Tksystem into a strange state.o New demos for tcltk: tkfaq, tkfilefind, tkcanvas.o termplot() now has an `ask' argument.o terms() creates objects which now inherit from class "formula",so for example as.formula(terms.object) needs to be replaced byformula(terms.object).o traceback() is now printed un-quoted and labelled by theframe number.o New argument `recursive' to unlink(). The default behaviour onUnix is now that of rm -f, not rm -rf. unlink() is nowcompatible across platforms.o New functions write.ftable() and read.ftable() for writing outand reading in flat contingency tables.o write.table() now quotes factor columns if quote=TRUE, and hasa new argument `qmethod' to control the escaping ofembedded quotes in character or factor columns.o New function xtabs() providing a formula interface to crosstabulation.o The R Data Import/Export Manual (`R-data.texi') has been added.o The set of valid R names is now described (at last) in R-intro.o The R Language Manual (`R-lang.texi') is now included and builtin the same way as the other manuals.o The R manuals (R-intro, R-exts, ...) are converted to HTMLformat (if the necessary texinfo tools are available) andlinked into the top HTML help page.o The header file `R.h' and those included from it are now usablewith C++ code.o New header file `R_ext/Boolean.h': Rboolean type with TRUE andFALSE enum constants.o New header file `Rgraphics.h' to allow addons to use graphicsstructures.o Recommended include file `Rmath.h' replaces `R_ext/Mathlib.h'.o Bessel, beta and gamma functions are now documented as part ofthe API. Undocumented entry points are no longer in theheader files, and some are no longer visible.o Calloc & Realloc failures now give size information.o DESCRIPTION file in installed packages has a new `Built:' fieldgiving build information (R version, platform, date).o Much improved support for C++ code in add-on packages under Unix.New configure/build variables SHLIB_CXXLD and SHLIB_CXXLDFLAGSfor specifying the command and flags needed for building sharedlibraries containing objects from a C++ compiler.Configure tries to get these right in typical cases (GNU toolsand/or common platforms).C++ source suffixes `.cpp' and `.C' are now recognized inaddition to `.cc'.o Configure/build variables MAINLD and MAINLDFLAGS are renamed toMAIN_LD and MAIN_LDFLAGS for consistency with other MAIN_* vars,similarly for SHLIBLD and SHLIBLDFLAGS.o Configure/build variable FLIBS now only contains the Fortran 77intrinsic and run-time libraries needed for linking a Fortran 77program or shared library (as determined by configure). BLASlibrary detection was extended, with results saved to the Makevariable BLAS_LIBS which is also available to add-on packages.o R CMD build and check have been completely re-written in Perl.In addition to running examples, check now also checks thedirectory structure and control files, makes a temporaryinstallation and runs LaTeX on the help pages. Build has beenreduced to cleaning, rewriting indices and creating tar files.The same files of Perl code are now also used under Windows.o Add-ons for utilities like Perl or LaTeX have now a centralplace in $R_HOME/share. Migration of existing files might takea while, though.o Preliminary support for building R as a shared library (`libR')under Unix. Use configure with option `--enable-R-shlib' or do`make libR' in directory `src/main' to create the sharedlibrary.There is also a linker front-end `R CMD LINK' which is usefulfor creating executable programs linked against the R sharedlibrary.BUG FIXESo New "[.AsIs" function fixing PR#665.o Effectively zero-length arrows() are omitted (rather than gettinga system- and device-dependent arbitrary angle).o barplot() passes "..." down to plot.window as documented.o bxp(*) now obeys axes, xaxt, yaxt & ylim arguments (again?).o contour(.., labcex = 0.6, .. , vfont = c("sans serif", "plain"), ..)now behaves as it has been documented, PR#740.o D(.) is now more correctly documented, has second argument"name" instead of "namevec" (S compatibility), and gives a warningwhen name has not length 1.o dbinom() and dpois() now use a the accurate algorithm of C.Loader;e.g., 1 - 2*sum(dbinom(0:999, 1999, 1/2)) is now zero instead of 1e-12.o dbeta(), df(), dt(), dnbinom(), dgeom(), dgamma(),now all use the more accurate algorithms of dbinom() and dpois();More limits are computed correctly, e.g. dgeom(Inf,*), ordnbinom(*,*,p=0), and integer argument coercion is more consistent.o dbeta(x, a,b) was giving NaN and Inf for large a and b.o The math functions now (again!) return NaN (not NA)when the warning message says so (e.g. gamma(-1)).o Paper sizes for "a4" and "legal" were interchanged in dev.print().o Improved logic in the re-scaling of plots in dev.print().o dev.print() and dev.copy2eps() now evaluate arguments asneeded, so e.g. dev.print(file="junk.ps", horizontal=F) willwork (previously =FALSE was needed).o Now dweibull(0,1) == dexp(0) == 1 for consistency.o Changing column modes from factor/character to numeric inedit.data.frame() (and fix() on data frames) is now allowed.o gctorture() did return a value although documented not to, that ofgcinfo. It now returns the previous setting of gctorture.o glm() now follows lm() in dropping unused factor levels when fitting.o hist() now labels y-axis Density rather than Relative Frequencyif freq=FALSE. The `intensities' component of the result isnow deprecated and `density' should be used instead.o hsv() truncation bug fixed (hopefully correctly this time...)o library.dynam() no longer fails if the library appears more thanonce in lib.loc.o lm.fit & lm.wfit (and hence lm) now give understandable errormessages when there are 0 non-NA cases.o match() does not always use "as.character()" anymore, fixes PR#741.o Trimmed mean() and median() are no longer attempted for complexdata.o median() of empty vector is now NA.o model.matrix() can now handle NAs in factors.o model.matrix() now uses ":" not "." in labelling interactionterms, as terms() and the prototype do (PR#701).o old.packages() now sorts version strings correctly bysplitting at "." and "-".o optim() has several new precautions against bugs, one of which wasan infinite loop in the L-BFGS-B method if the derivativeswere inaccurate (or if numerical derivatives were used and theproblem was badly scaled).o pairs() now obeys an "cex = " argument, and so does panel.smooth().o pf() had a bug in the code handling large noncentralityparameters, going all the way back to the original Appl.Stat.algorithm (PR#752). This affected pbeta() as well.o phantom(expr) in plotmath was used to calculate the boundingboxes, but the space was not actually used in typesetting theexpression (PR#622).o Problem with subsetting and "..." arguments in plot.formula()(PR#757)o plot.lm() has a better default for its `ask' argument.o plot.new() does *NOT* allow an argument (`ask') anymore.This has not been working (since ~ R 0.49), is low-level andhence should not break anything.o plot.stl() now uses correct time labels for tickmarks of x-axes.o pnorm() is somewhat more accurate (SIXTEN=16; PR#699) and`infinitesimally faster' in some cases, thanks to James M. Rath.o Failure to open a postscript() device now gives diagnostic warnings.o Zero the widths of undefined chars in postscript().o Make font metrics local to the device in postscript(), sothat simultaneous instances of postscript/xfig/bitmap can usedifferent values for `family'.o postscript() no longer uses the initclip operator, whichwas against the EPSF specifications and broke inclusion ofgraphics in some documents.o In postscript(), cleaned up the internals to fix somecases where it was unclear whether a variable was meant to setor track device status.o In some cases, emitted postscript violated the PS DocumentStructuring Conventions since some settings were carried over fromone page to the next. (Caused breakage when turningantialiasing on/off in "gv" for instance.)o The DocumentMedia comment in postscript() output was wrong,and the font DSC comments have been changed to the preferredstyle for DSC 3.0.o pretty(x <- c(2.8,3))[1] - x[1] is now 0; in general,p <- pretty(x) now again fulfills p[1] <= x[] <= p[length(p)].o print.dist() {mva} now passes "..." to print.default.o print.noquote("ABC") now works.o prompt(fn) uses fn's "source" attribute if it has one.o In prop.test(), the conf.int. now contains the estimate,even when that is 0 or 1 (PR#714).o qnorm(0) and qnorm(1) now give -/+ Inf (again!).o qt(*, log = TRUE) has a somewhat extended working range.o Specifying col.names in read.table() now overrides any headerline in the data file.o Bug caused rpois() to generate biased variables in some cases.o scale(scale=TRUE) gave all NAs in any columns containing NAs.o eda's smooth() now computes Tukey's endrule properly.o smooth.spline()'s GCV method now uses a more accurate formulawhen there are repeated x points.o stars() fix (for 0/NA columns) PR#739.o data(state)'s state.abb has been corrected to use official2-letter abbrevations.o strsplit() had two memory leaks.o tcltk interface now has better string quoting and no longer breaks onstrings with unbalanced braceso tcltk callbacks used to include a "%..." argument on the call if thecallback function had a "..." argument. This is no longer the case.o t.test() allows an input vector of length 2.o Method dispatch in primitive functions such as `c' onlyoccurred if they were called by that name, and in particularnot if used in lapply or called as .Primitive("c"). It nowalways occurs.o Method dispatching now forces evaluation of promises, soautoloading works with methods.o c(0.099999994, 0.2) prints as 0.1 0.2 not 0.10 0.20 aftercorrecting the precision calculations.o Internal function fprec was overflowing for numbers around1e-305.o [internal] .C("strsignif",*) doesn't use fixed size strings anymore(possible overflow).o ff[i] <- r now works for formula (and potentially othernon-standard) objects ff.o Errors in argument matching could cause crashes if errorhandler was used.o NULL == ... now gives logical(0) instead of an error.This fixes a bug with e.g. apply(X,2,median, na.rm = TRUE) andall(NULL == NULL) is now TRUE.o polylines with more than 64K pieces will now work on more Xservers with the x11 device.o R CMD Rd2dvi now again works with file names containing "_" or "$".o R CMD Rdconv now handles .rd as input file extension correctlyin all cases.o make install could fail if there were no shared libraries toinstall (e.g. on vanilla Solaris).o Rd's \describe{} constructs are converted better to textoutput, and \items of >=22 chars now work.o Help aliases "(" and "{" now work, apart from as PDF hyperlinks.o NA || x , NA && y (etc) do not give errors anymore, but work asthe "|" and "&" operators and as documented (PR#749).o Coercing lists to functions failed if argument list was empty.(PR#743). Also coercing functions to lists was wrong when thebody was a single constant.*************************************************** ** 1.1 SERIES NEWS ** ***************************************************CHANGES IN R VERSION 1.1.1NEW FEATURESo data(), example() and help() now search the loaded packages, thenin their .lib.loc argument, the latter as pre-0.99.0. Seetheir help pages for the precise details.o help() has a new argument `try.all.packages' set by the option"help.try.all.packages". If help is not found in the normalpath and this is TRUE then a search is made of all packagesfor possible matches.o Improved detection of Tcl/Tk at configure time. One can eitherset configure variables TCLTK_CPPFLAGS and TCLTK_LIBS, or givethe locations of the tclConfig.sh and tkConfig.sh scripts viathe `--with-tcl-config' and `--with-tk-config' arguments.o prop.trend.test() - test for trend in proportions.o write.table() has new argument `dec' for setting the decimalseparator (SPSS/Windows and probably others want commas incontinental European locales).o Advance warning: save(, oldstyle=TRUE) will no longer beavailable after this release.o Symbols can now be coerced to expressions, makingas.expression(quote(a)) workBUG FIXESo data() now works correctly with data-only packages.o Standalone Mathlib can now be made if builddir = srcdir(working around an undocumented autoconf `feature').o Check for pre-1.1.0 saved object .Postscript.options in postscript().o More stringent checks on the arguments to dataentry().o Specifying xlab as an expression now works again.o dev2bitmap() works again.o Numerous uses of `F' and `T' replaced by `FALSE' and `TRUE'.o bxp() now extends `ylim' properly when notch=TRUE (and anotch is more extreme than other stats).Also, varwidth is okay again, see example(split).o Making manuals without making R first now works.o princomp() now works when some eigenvalues are tiny negativevalues (which are treated as zero).o SearchEngine.html was not installed when builddir != srcdir.o lm.{w}fit(x,y,..) now work when x has no column names.These functions no longer add and subtract n zeros when there's nooffset. They are now documented somewhat.o Some HTML files used src="R.css" instead of href="R.css" causingsome browsers to ignore the style sheet. `R.css' now passes thew3c CSS validator and gives the intended results with InternetExplorer. `R.css' is copied to all library directories.o The data editor no longer crashes when entries contain more than45 characters, and works correctly if the field width islarger than the window width.o Recording plots used to ignore graphics events before the lastreplay.o plot(), points(), etc now give warnings and error for invalid`type' arguments.o matplot() now allows the same `type's as plot().o dev.print() and dev.copy2eps() now work when called from afunction, such as dev2bitmap().o anova.glmlist works correctly with decreasing models andtest="F" now gets the correct residual df.o Functions created (not just edited) with fix() now getenvironment .GlobalEnv not the body of fix.o Rdconv was ignoring OS-specific parts of the files with somePerl versions. (This did not affect installing packages.)o R CMD check did not run more than one specific test.o keyword2html omitted items when changing up a level, sothe HTML search engine keyword list was missing `data' and`utilities', for example.o aov() with multiple strata was setting some spurious options.o Under UNIX, help(, htmlhelp=TRUE) uses the linked copy of theHTML file in ~/.R if help.start() has been run recently in thesession, so the style sheet and hyperlinks should now be found.o dotplot's arguments `color' and `lcolor' are now interpretedcorrectly if they are vectors of length > 1. (It is not clearfrom the help that this was ever intended.)o Error messages of e.g. do.call() are now spaced properly.o summary(.matrix | .data.frame) now respects a `digits' argument.o scan() recognises quoted strings by default again. The defaultfor the quote= argument got set wrongly when it wasintroduced. They are, however, turned off when using sep="\n",since you probably want unprocessed lines of text in thatcase.o fixed buglet where scan() would double a character following aterminating quote symbol.o kmeans was failing on vector inputs (although not documentedto accept such).o fixes in predict.lm (John Maindonald)o NCOL got confused by 1D arrays, which it now reports have 1column rather than NA.o rep(1:2,c(1,-1)) segfaulted (PR 619)o x[["a"]] <- y rejected some object types for y (e.g.expressions) which were accepted in x$a <- y (PRo data editor froze on empty data frame, and more generally onzero-length cols.o data editor did not handle factors properly in numeric-editmode.o table() misbehaved on empty (or all-NA) datao data editor now handles empty data frames, allowing data entryto begin with dd<-edit(data.frame()) ordd<-data.frame() ; fix(dd)o plotting math expressions when specified as a LANGSXP orSYMSXP didn't work in several cases: plot(1,main=quote(a))would segfault and there were problems with title(), text(),and mtext() as well.o optim(): no more segfault for REPORT=0; corrected error msg; ..maxit default is now okay also when "L-*-B" is chosen automatically.Using (abs|rel)tol with that method now gives a warning.o text() did not respect its `xpd' argument, the default of whichis still to use par("xpd"); gave a wrong error message in one case.o polygon() had an incorrect documentation and silently disregarded"..." arguments.o predict.loess was giving incorrect results (those for thenon-robust fit) in the case of a fit with family = "symmetric"and surface = "direct" and prediction with se = FALSE. Thefitted values were missing for such fits.o Better rendering of ^ and ~ in latex in \code{} (and they shouldnot appear outside code and verbatim sections).o Fixed unterminated string problem with lty (PR 584)o Fixed scoping problem with quasi() family (PR 614)CHANGES IN R VERSION 1.1.0NEW FEATURESo There are several changes to the compile and link flags, andan attempt is made to use /usr/local/include and/usr/local/lib on all platforms. Please read config.site andINSTALL if you have set flags for previous versions.o New package tcltk, providing interface and language bindings forthe Tcl/Tk graphical interface toolkit. This makes it possibleto do some rather nifty things with buttons and entry fieldsand so forth in very few lines of code. It is still somewhatexperimental so don't go churning out thousands of lines ofGUI code and then blame us for changing the API later on. It doesnot currently work with GNOME because of event loop differences.See demo(tkttest) and demo(tkdensity).o Internally using global R_Expressions [getOption("expressions")]dramatically speeds up eval.c.o The X11 support code is now in a separate shared library, andoption `--gui=none' will run R without X11 support (and so x11()and data.entry() will not be available). R BATCH sets --gui=none.o Configuring without X (e.g., `--without-x') does work (at last).configure will report if X11 support has been included.If R has been built without X11 the default GUI is "none".o GNOME support files have moved from src/gnome to src/unix/gnomeand the code is now in a separate shared library. Both`--gui=GNOME' and `--gui=gnome' are allowed.The main graphics device for use with GNOME is now calledgtk(); the x11() device from the X11 support can also be used.(The gnome() device remains unreliable, and is by defaultunavailable.)All GNOME support now installs in R_HOME/gnome to make iteasier to package separately.o Command line option `-g' can now be used as short version of`--gui'.o The "keep.source" option now defaults to interactive()instead of TRUE.o Many interface enhancements to the data editor, which now uses(by default) variable-width columns and much less redrawing.See ?dataentry for a description of the current user interface.o R under Unix can be sent SIGUSR1 to quit and save or SIGUSR2to quit and save without running .Last and on.exitexpressions.o Added ability to use the graphics device driver to performhorizontal justification of strings. This is used in thex11(), windows(), postscript() and xfig() drivers and willlead to more accurate placing of centred or right-justifiedstrings.o Formulas created with the tilde operator now contain theenvironment in which they were created. The environment of aformula can be accessed with the environment() function. Thisfacility is still experimental; it is intended to helpsimplify writing modeling functions.o $ and $<- are now generic functions.o add1.glm() and drop1.glm() now allow test="F", which isappropriate for models with estimated dispersion.o approx() and approxfun() have an extra argument ties= to controlhandling of tied x valueso New function as.symbol(), identical to as.name().is.symbol and is.name() are now identical by definition;before, they were equivalent by implementation.o attach() now works for R data files.o axis() now has additional arguments. The argument "tick" turnstick drawing on and off (on by default). Additional argumentsline, pos, and outer; allow more flexible placement of axes.o New device bitmap(), like dev2bitmap() but a stand-alone device.o boxplot() returns (and bxp() accepts) a list containing the summarystatistics for the boxes (changed from a list of elements one foreach box).o file="|cmd" is allowed (to pipe output to `cmd'), under cat()and postscript() and functions that use them (for example, write()).o New functions chartr() for general-purpose character translationin character vectors, and tolower() and toupper() for convertingalphabetic characters to lower-case and upper-case, respectively.o coplot() has new option subscripts=TRUE to pass the indicesto the panel function.o cor.test(method="spearman") might give slightly better P values,since it now relies on pnorm() (with proper tail) instead of alnorm.o dbinom() works for size=0 (where appropriate).o New trivial function det() for determinant computation(the example in ?qr did not seem to be sufficient).o If present in the package, a function .Last.lib will be calledwhen a package is detached.o New function dev.copy2eps() copies the current device to an epsfile, taking the size from that of the device.o dev.print() now prints if possible, and takes the size fromthe device being copied.o edit() or fix() applied to a numeric or character matrix nowuses the data editor, if available.o edit.data.frame() edits factors in character mode by default,and will allow the row names to be edited, by default if theyare not 1:nrow(name).o expand.model.frame() for adding variables to a model frame.o The handling of estimating the dispersion in glm() fits has beenchanged for consistency across methods. For `binomial' and`poisson' families the dispersion is always taken as one.For `quasibinomial' and `quasipoisson' families it is alwaysestimated (by residual chisq/residual df).o Using "~" when specifying lib.loc (for example to help() orlibrary()) is now supported.o image() has a new argument "breaks" and divides the zlim rangeinto equal-length intervals.o install.packages() and update.packages() have a new `destdir'argument for the directory to which to download the packages.o New function interaction.plot().o Internal cleanup of lapply()'s C code.o library(), require(), and sys.source() have a new argument` keep.source = getOption("keep.source.pkgs") '.This defaults to false, but can be set (also for base) to trueby setting the environment variable R_KEEP_PKG_SOURCE to "yes"o Par `lty' in lines() now defaults to par("lty") not "solid",for consistency with plot().o list.files() [aka dir()]: path argument has now default = "."o locator() allows inline graphics parameters (for the plottingit does with type !="n").o New function max.col() from MASS, thanks to V&R.o nlm() can now take additional arguments in ... to be passed to f.o par() returns elements in alphabetical order, and "ann" as alogical (not integer).o .Platform has a new component GUI specifying the GUI in use(which might be "unknown").o plot.formula() searches for a plot method for the left-side of theformula before searching for a plot method for the right-side ofthe formula.o New bitmap devices png() and jpeg() on Unix/X11. (They werealready available on Windows.)o postscript(print.it=TRUE) now does print the plot file.postscript(onefile=FALSE) now produces multiple separate files.o provide() is now deprecated.o New function quade.test() in package ctest for the Quade testfor unreplicated blocked data.o quantile(x, probs) now propagates NA/NaN in probs.o Option for user-supplied normal random generator in RNGkind().o read.fwf() is no longer dependent on Perl.o New arguments check.names and strip.white to read.table() andfriends.o Functions recordPlot() and replayPlot() save a plot to an Rvariable and replay it.o residuals.lm() also allows types "partial" and "response"as residuals.glm().o Added col option to rug().o scale() is now generic with scale.default method.o New "call. = TRUE" argument for stop(), andnew function stopifnot(.) -- to be used in "make check".o str(.) has a new optional argument "nchar.max = 128" and truncatesstrings longer than that. Also eliminated a few minor glitches.o The symbols() function is now implemented.o New function termplot() with similar functionality toplot.gam() in S.o The parameters to title() which specify the labels may nowbe specified as a list containing the parameter togetherwith additional modifying par values (cex, col, font) whichaffect just that label.title() also has new line and outer arguments which providefunctionality which matches that in axis().o New functions which.min() amd which.max().o The Wilcoxon and Ansari-Bradley tests now optionally returnconfidence intervals for the location or scale parameter ofinterest.o New argument `extend' to window() (and updated documentation).o write.table() can now write CSV files in the format Excel expects.o New device xfig() to produce XFig files.o New xyz.coords() utility function to be used for 3D highlevel plots.o R CMD build now also works for package bundles.o Rdconv allows an output file to be specified.o Initial support for C++ source code in add-on packages under Unix.o Mathlib can be built as a standalone library: see directorysrc/nmath/standalone.BUG FIXESo The Mathlib functions now use exactly the same values for+/-Inf, NaN and NA as the rest of R in all cases.o Improved automatic remaking.o option keep.source was not set correctly before the basepackage was loaded: some functions in the base package hadthe source kept. The memory usage should now be reduced by ca 1Mb.o The base file is no longer closed twice in case of a syntaxerror (caused segfault on Linux).o The X11 data editor scrolls cells and so allows more than ca 10characters to be entered. Several interface/redraw errorshave been corrected.o Using `destroy' or `close' on the X11 data editor window killed R.o Multiple `destroy' events or X11 errors killed R (PR#400).o Warnings from .Last or closing devices are printed wheresensible (e.g. not on GNOME nor Windows console).o add1.glm() and drop1.glm() gave incorrect results in the "Chisq"test option when the scale was estimated.o aggregate() applied to multiple time series lost the series names.o as.hclust.twins() in package mva sets method=NA (PR#538)o ave(1:3) now works (as when is.null(list()) was TRUE years ago).o barplot(c(0.1, 0.5, 1), ylim = c(0, 1)) now works: [xy]axs="i"and exact limits now labels the limits.o by() works when embedded in a function.o The xlab and ylab in coplot() now set the x and y axis labels,as in S. Supply a second component to label the conditioningvariables.o count.fields() and read.table() now have the same defaultquote = "\"'".o guard against segfault in dataentry(x<-1, Modes = plot), and the like.o dev.print() now checks if the current device is replayable(and not all devices were, despite the documentation).o The gtk() device (formerly x11() under GNOME) was incorrectlyreturning character information, so in particular `*' waswrongly centred as a plotting symbol.o is.qr() checks not only for $qr, but also for $rank & $qraux, PR#482.o library() will not leave the package on the search path ifloading fails (including if .First.lib fails).o lqs(, method="S") rounded k0 on passing to C.o na.omit() now handles vectors and matrices as well as dataframes.o plot.lm(*, which=4) now works thanks to Marcel Wolbers.o postscript() now uses the options "papersize" and "printcmd"rather than the values of R_PAPERSIZE in the environmentand R_PRINTCMD found at build time.o postscript() now makes use of kerning information in computingstring widths.o M <- 2 ; print(ppr(.., nterms = M)) now works.o ppr(, sm.method="spline") had an internal limit of 250 rows:this is now 2500 and is now checked.o predict.lm(,type="terms",se.fit=T) gives correct standard errors(thanks to John Maindonald)o print.ftable() now returns its argument.o proj.aovlist() now gives a non-zero result for strata withno fitted effects.o qnorm() is now based on AS 241 instead of AS 111, and shouldgive precise results up to 16 digits precision.o rgeom(, prob=1) gives 0 rather than NAo rpois(*, lambda) now works when lambda > .Machine$integer.maxo strheight("X") with no active device would segfault.o system() is now (partially) functional on systems without popen.o Fixed bug in undoc() - requiring new `chdir' argumentfor sys.source()o Fixed problem in usemethod() where CAR(call) could be non-symbol.o The x11() device no longer crashes R if a font is not found,and will warn if there is a size mismatch of more than 10%.o R CMD Rd2dvi now sorts files alphabetically.o Rdconv now reports if an invalid type is specified (ratherthan using latex).o Support for Rd conversion to Sd has been reinstated (it wasunintentionally removed along with nroff-based conversion to text).o \deqn{} fix in R-exts.texi, PR#523.o Linpack.h now makes clear which routines are actually in R.o Entry-point "pythag" is now loaded even though it is notnecessarily used in R. Where "hypot" is available pythagjust calls hypot after checking for special values.o call_R will now correctly handle character vector arguments.o The alphabet links on top of HTML function indices with more than100 entries now contain only the letters which are reallyfirst letters of at least one entry.CHANGES IN R VERSION 1.0.1BUG FIXESo pgamma(Inf, 1, Inf) gives NaN instead of an infinite loop, PR#462.o Inline xaxt and yaxt parameters were ignored.o Setting the normal RNG was not always recorded in .Random.seed.o \link[pkg]{foo} links were wrongly translated to HTML.o Direct use of show.data() with no args was incorrect.o print.coefmat does sensible things if optionsshow.signif.stars and show.coef.Pvalues are not set correctly.o x <- list(a=1, b=2) ; x["c"] <- 3 now (again) stretches the listrather than give a "subscript out of bounds" error.o Models with response appearing on rhs could cause segfault.o as.data.frame.matrix will now ensure the columns added havenon-empty names.o Some (strange?) model formulas could cause memory corruption(thanks to John Fox for digging this up).o Matrix multiplication in cases such as 1:3 %*% t(1:2) is accepted.o Options --nsize and --vsize to R CMD check gave warningmessages and only one was accepted.o The autoload()s during startup are "wrapped" suchthat conflicting objects don't break startup.o cor.test(*, meth="spear") {pkg ctest} now works (again) for n <= 6o scale = 0 in biplot.princomp() now works.o The scores given by princomp(, cor = TRUE) and the rotatedvalues given by prcomp(, scale = TRUE) are now computed from thescaled data.o barplot now works okay when length(col) < length(legend.txt),thanks to Ben Bolker, PR#494.o legend has new args `ncol' and `horiz' thanks to Ben Bolker.o kernel("dirichlet", m=10, r=1) in package ts now works.o save/restore of environments containing "..." object shouldwork now.o qhyper should work better for large N.o qbinom(1-1e-16, n, p) , qpois() and qnbinom(*) looped for ever.o as.matrix.data.frame no longer escapes quotes in charactervectors.o R would try to save the readline history at the end ofnon-interactive sessions, causing crashes on some systems.o Subtle roundoff problems caused arrays to be allocated short inloess.c in some cases, leading to segfaults.o Document that postscript(file="") sends the output directly tothe default printer.o ts.union(, dframe=TRUE) had a long-standing typo, now works.o save(, ascii=TRUE) had problem with octal escapes in stringswhen there was a digit following, should work now.o matpoints() and matlines() now also have a "type =" argumentwith defaults "p" and "l", respectively; PR#506.o The new Perl 5.6 broke our version-detection mechanism. Abetter one has been inserted.o X11(colortype="gray") failed to work on 8-bit screens, andmore generally when colour allocation failed X11() did notrevert to monochrome correctly (and did not say it was doing so).It was not documented in the help that to change the X11colortype one needs to close all open X11 devices.o loessf.f in modreg defined DSIGN unecessarily and this causeda conflict on AIX.o plot.lm will now work with rlm objects.o start and end behave better when the frequency is not an integer.o aggregate.ts is closer to S-PLUS's aggregate.rts.o quantile(x) now works when x contains several +/- Inf's.o guard against segfault in dataentry(0,0) (or, morerealistically, when mistyping data.entry(x,y) asdataentry(x,y))o fixed special cases that caused bad behavior for methods,particularly with nested use of primitive operators whensetMethod had been called. Also fixed some situations thatprevented caching methods (and therfore slowed down dispatchseriously) in similar cases.********************************************************** ** News of 1.0.0 and earlier is in file `ONEWS' ** **********************************************************