| Dear Emacs, please make this -*-Text-*- mode! |
| |
| This file covers NEWS for the 1.x series |
| See 'NEWS.2' for subsequent changes. |
| |
| ************************************************** |
| * * |
| * 1.9 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.9.1 Patched |
| |
| |
| INSTALLATION ISSUES |
| |
| o Installation will now work even in Norwegian and Danish locales |
| which sort AA at the end (for package stats4 which has AAA.R). |
| |
| |
| BUG FIXES |
| |
| o 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 from |
| Solaris 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 time |
| range of the original series (possible if extend = TRUE). |
| |
| o coplot(..) doesn't give an extraneous warning anymore when called |
| on 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{..} for |
| f <- function(x, g = function(u) { v <- u^2 ; sin(v)/v }) { g(x) } |
| |
| o package.skeleton() now uses the supplied name in the DESCRIPTION |
| file. |
| |
| o options(list('digits', 'scipen')) no longer seg.faults, the |
| problem being the misuse of a list (PR#7078). |
| |
| o summary.Date() now has a more sensible default for 'digits'. |
| |
| o list.files(all.files = TRUE, recursive = TRUE) died on infinite |
| recursion. (PR#7100) |
| |
| o cor(as.array(c(a=1,b=2)), cbind(1:2)) no longer seg.faults (PR#7116). |
| cor(), cov() and var() no longer accidentally work with list() |
| arguments as if they were unlist()ed. |
| |
| o as.matrix(data.frame(d=as.POSIXct("2004-07-20"))) doesn't give a |
| wrong warning anymore. |
| |
| o gsub(perl=TRUE) code got the R length of return strings wrong |
| in some circumstances (when the string was shortened). |
| (Fixed also PR#7108) |
| |
| o summaryRprof() was ignoring functions whose name begins with dot, |
| e.g. .C, .Call, .Fortran. (PR#7137) |
| |
| o loglin() could segfault if 'start' was of the wrong length. (PR#7123) |
| |
| o model.tables(type="means") could fail in a design where a |
| projection gave all zeros. (PR#7132) |
| |
| o Applying attributes() to a pairlist, e.g. .Options, could segfault. |
| |
| o The checking of R versions incorrectly assumed 1.9.1 >= 1.50. |
| |
| o str(Surv(..)) failed for type = "counting" Surv objects and for |
| promises. |
| |
| o approx(c(1,2),c(NA,NA),1.5,rule=2) does not segfault anymore |
| (PR#7177), but gives an error. |
| |
| o nls(model = TRUE) was broken. |
| |
| o Subsetted assignments of the form A[i1, i2, i3] <- B stopped as |
| soon as an NA was encountered in an index so subsequent non-NA |
| indices were ignored. (PR#7210) |
| |
| o Fixed bug in handling of lwd=NA in contour(). |
| |
| o is.na() was returning undefined results on nested lists. |
| |
| |
| |
| |
| CHANGES IN R VERSION 1.9.1 |
| |
| |
| NEW FEATURES |
| |
| o 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 of |
| heat color palettes in these cases. (Also fixes PR#6776.) |
| |
| o nls() now looks for variables and functions in its formula in |
| the environment of the formula before the search path, in the |
| same way lm() etc look for variables in their formulae. |
| |
| |
| INSTALLATION ISSUES |
| |
| o src/modules/X11/dataentry.c would not build on some XFree |
| 4.4.0 systems. (This is a bug in their header files but we have |
| added a workaround.) |
| |
| o Building with gcc/g77 3.4.0 on ix86 platforms failed to produce |
| a working build: the critical LAPACK routines are now compiled |
| with -ffloat-store. |
| |
| o Added patches to enable 64-bit builds on AIX 5.1: see the R-admin |
| manual for details. |
| |
| o Added some patches to allow non-IEEE-754 installations to work |
| reasonably well. (Infs and NAs are still not handled properly |
| in complex arithmetic and functions such as sin(). See also |
| Deprecated, as support for non-IEEE-754 installations is about |
| to be removed.) |
| |
| o Installation will now work in Estonian (et_EE*) locales, which |
| sort z before u. (PR#6958) |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o Support for non-IEEE-754 arithmetic (which has been untested |
| for some time) will be removed in the next full release. |
| |
| o Direct use of R INSTALL|REMOVE|BATCH|COMPILE|SHLIB is |
| deprecated: use R CMD instead. |
| |
| o The gnome/GNOME graphics device is deprecated and will be |
| removed in the next full release. |
| |
| |
| BUG FIXES |
| |
| o 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) more |
| accurate when prob is very small. (PR#6792) |
| |
| The code for pgeom(prob=1) assumed IEEE 754 arithmetic, and |
| gave 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, which |
| identical() cares about. (PR#6799) |
| |
| o The L-BFGS-B option of optim() apparently needs part of its |
| workspace zeroed. (PR#6720) |
| |
| o extractAIC.survreg() needed updating. |
| |
| o When using the header Rmath.h in standalone mode, the case where |
| TRUE, FALSE are already defined is now handled correctly. |
| |
| o Package utils now exports several functions that are needed for |
| writing 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 to |
| misbehave (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 dates |
| before 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.fault |
| anymore (PR#6809). |
| |
| o plot(1, pch=NA) does not give an error anymore and |
| plot(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`s |
| when nc > 1 and obeys 'ann=FALSE' or 'axes=FALSE'. |
| |
| o aggregate(.data.frame) failed if the answer would have had one |
| row. |
| |
| o recordPlot() and replayPlot() failed to duplicate the display |
| list, so further plotting altered the saved or replayed object. |
| |
| o Assignments of the form adf[i,j] <- value now accept a |
| data-frame value as well as a list value. |
| |
| o dir.create() sometimes erroneously continued to report a directory |
| already 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 as |
| arguments of likelihood function (reported by Ben Bolker) |
| |
| o backsolve(r, x, k) now allows k < nrow(x) - as its documentation |
| always claimed. |
| |
| o update.packages("mgcv") and old.packages(*) now give a better error |
| message; and installed.packages("mgcv") properly returns <empty>. |
| |
| o stats:::as.dendrogram.hclust() is documented and no longer re-sorts |
| the two children at each node. This fixes as.dendrogram(hh) for |
| the 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 when |
| specified---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, used |
| to 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 by |
| the perl=TRUE option to grep() etc were being corrupted and so |
| matches 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: see |
| example(file.info) for an example. |
| |
| |
| |
| CHANGES IN R VERSION 1.9.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o Underscore '_' is now allowed in syntactically valid names, and |
| make.names() no longer changes underscores. Very old code |
| that makes use of underscore for assignment may now give |
| confusing error messages. |
| |
| o Package 'base' has been split into packages 'base', 'graphics', |
| 'stats' and 'utils'. All four are loaded in a default |
| installation, 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 been |
| merged into stats, and lqs has been returned to MASS. In all |
| cases a stub has been left that will issue a warning and ensure |
| that the appropriate new home is loaded. All the time series |
| datasets have been moved to package stats. Sweave has been |
| moved to utils. |
| |
| Package mle has been moved to stats4 which will become the |
| central place for statistical S4 classes and methods |
| distributed with base R. Package mle remains as a stub. |
| |
| Users may notice that code in .Rprofile is run with only the |
| new base loaded and so functions may now not be found. For |
| example, ps.options(horizontal = TRUE) should be preceded by |
| library(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 of |
| an 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 R |
| only supports single-byte encodings. |
| |
| |
| NEW FEATURES |
| |
| o $, $<-, [[, [[<- can be applied to environments. Only character |
| arguments are allowed and no partial matching is done. The |
| semantics are basically that of get/assign to the environment with |
| inherits=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 (to |
| find log-likelihood and AIC values, thanks to Rob Hyndman). |
| |
| o array() and matrix() now allow 0-length `data' arguments for |
| compatibility with S. |
| |
| o as.data.frame() now has a method for arrays. |
| |
| o as.matrix.data.frame() now coerces an all-logical data frame |
| to a logical matrix. |
| |
| o New function assignInNamespace() parallelling fixInNamespace. |
| |
| o There is a new function contourLines() to produce contour |
| lines (but not draw anything). This makes the CRAN package |
| clines (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 quoted |
| character 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 integer |
| vector now wraps it in as.integer() so it will be source()d |
| correctly. (Related to PR#4361.) |
| |
| o .Deprecated() has a new argument `package' which is used in |
| the 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 to |
| mkdir) on Unix as well as on Windows. There is now an option |
| to suppress warnings from mkdir, which may or may not have |
| been wanted. |
| |
| o dist() has a new method to calculate Minkowski distances. |
| |
| o expand.grid() returns appropriate array dimensions and dimnames |
| in the attribute "out.attrs", and this is used by the |
| predict() method for loess to return a suitable array. |
| |
| o factanal(), loess() and princomp() now explicitly check for |
| numerical inputs; they might have silently coded factor |
| variables in formulae. |
| |
| o New functions factorial(x) defined as gamma(x+1) and for |
| S-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 environment |
| set as its environment. And what it does is now documented. |
| |
| o glm() arguments `etastart' and `mustart' are now evaluated via |
| the model frame in the same way as `subset' and `weights'. |
| |
| o Functions grep(), regexpr(), sub() and gsub() now coerce their |
| arguments to character, rather than give an error. |
| |
| The perl=TRUE argument now uses character tables prepared for |
| the locale currently in use each time it is used, rather than |
| those 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 no |
| longer returns methods for non-visible generics (and |
| eliminates various mismatches). |
| |
| o A new function mget() will retrieve multiple values from an |
| environment. |
| |
| o model.frame() methods, for example those for "lm" and "glm", |
| pass relevant parts of ... onto the default method. (This has |
| long been documented but not done.) The default method is now |
| able to cope with model classes such as "lqs" and "ppr". |
| |
| o nls() and ppr() have a `model' argument to allow the model frame |
| to be returned as part of the fitted object. |
| |
| o "POSIXct" objects can now have a "tzone" attribute that |
| determines how they will be converted and printed. This means |
| that date-time objects which have a timezone specified will |
| generally be regarded as in their original time zone. |
| |
| o postscript() device output has been modified to work around |
| rounding 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 the |
| underlying 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 higher |
| values 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 vector |
| of length n and not length 0, for compatibility with S. |
| |
| If both `each' and `length.out' have been specified, it now |
| recycles 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 with |
| NAs was used.) |
| |
| The "POSIXct" and "POSIXlt" methods for rep() now pass ... on |
| to 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 and |
| onUnload 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 the |
| sink 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 added |
| extra code to do so. However, this cannot correct scanning |
| errors in the OS's strptime (although we have been able to |
| work around these on Windows). Some examples are now tested for |
| during configuration. |
| |
| o strsplit() now has `fixed' and `perl' arguments and |
| split="" is optimized. |
| |
| o subset() now allows a `drop' argument which is passed on to |
| the indexing method for data frames. |
| |
| o termplot() has an option to smooth the partial residuals. |
| |
| o varimax() and promax() add class "loadings" to their loadings |
| component. |
| |
| |
| o Model fits now add a "dataClasses" attribute to the terms, which |
| can be used to check that the variables supplied for |
| prediction 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 the |
| pointer protection stack to be set higher than the previous |
| limit 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 the |
| value of a new option "X11fonts". |
| |
| o New functions in the tools package: pkgDepends, getDepList and |
| installFoundDepends. These provide functionality for assessing |
| dependencies and the availability of them (either locally or |
| from on-line repositories). |
| |
| o The parsed contents of a NAMESPACE file are now stored at |
| installation and if available used to speed loading the |
| package, so packages with namespaces should be reinstalled. |
| |
| o Argument `asp' although not a graphics parameter is accepted |
| in the ... of graphics functions without a warning. It now |
| works 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 linking |
| of 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 marginal |
| summaries to tables, e.g. row and column totals. (Based on a |
| contribution by Bendix Carstensen.) |
| |
| o dendrogam edge and node labels can now be expressions (to be |
| plotted via stats:::plotNode called from plot.dendrogram). |
| The diamond frames around edge labels are more nicely scaled |
| horizontally. |
| |
| o Methods defined in the methods package can now include |
| default expressions for arguments. If these arguments are |
| missing in the call, the defaults in the selected method will |
| override a default in the generic. See ?setMethod. |
| |
| o Changes to package 'grid': |
| |
| - Renamed push/pop.viewport() to push/popViewport(). |
| |
| - Added upViewport(), downViewport(), and seekViewport() to |
| allow creation and navigation of viewport tree |
| (rather than just viewport stack). |
| |
| - Added id and id.lengths arguments to grid.polygon() to allow |
| multiple polygons within single grid.polygon() call. |
| |
| - Added vpList(), vpStack(), vpTree(), and current.vpTree() |
| to allow creation of viewport "bundles" that may be pushed |
| at once (lists are pushed in parallel, stacks in series). |
| |
| current.vpTree() returns the current viewport tree. |
| |
| - Added vpPath() to allow specification of viewport path |
| in 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 only |
| advised for interactive use (in case I decide to change the |
| separator :: in later versions). |
| |
| - Added "just" argument to grid.layout() to allow justification |
| of layout relative to parent viewport *IF* the layout is not |
| the same size as the viewport. There's an example in |
| help(grid.layout). |
| |
| - Allowed the "vp" slot in a grob to be a viewport name or a |
| vpPath. The interpretation of these new alternatives is to |
| call downViewport() with the name or vpPath before drawing the |
| grob and upViewport() the appropriate amount after drawing the |
| grob. 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 to |
| tell grid NOT to use the graphics engine display list and to handle |
| ALL redraws using its own display list (including redraws after |
| device resizes and copies). |
| |
| This provides a way to avoid some of the problems with resizing |
| a 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 grid |
| on the grid web site |
| (http://www.stat.auckland.ac.nz/~paul/grid/grid.html) |
| |
| - Changed the implementation of grob objects. They are no longer |
| implemented as external references. They are now regular R objects |
| which copy-by-value. This means that they can be saved/loaded |
| like normal R objects. In order to retain some existing grob |
| behaviour, the following changes were necessary: |
| |
| + grobs all now have a "name" slot. The grob name is used to |
| uniquely identify a "drawn" grob (i.e., a grob on the display |
| list). |
| + grid.edit() and grid.pack() now take a grob name as the first |
| argument instead of a grob. (Actually, they take a gPath - |
| see below) |
| + the "grobwidth" and "grobheight" units take either a grob |
| OR a grob name (actually a gPath - see below). Only in the |
| latter 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. The |
| grid.*() version is used for its side-effect of drawing |
| something 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 grob |
| objects without producing any graphical output |
| (by using the *Grob() functions). |
| + there is a gTree object (derived from grob), which is a grob |
| that can have children. A gTree also has a "childrenvp" slot |
| which is a viewport which is pushed and then "up"ed before the |
| children are drawn; this allows the children of a gTree to |
| place themselves somewhere in the viewports specified in the |
| childrenvp by having a vpPath in their vp slot. |
| + there is a gPath object, which is essentially a concatenation |
| of 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 extract |
| a grob or the child of a gTree. NOTE: the new grid.edit() API |
| is 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 clipping |
| |
| Still accept logical values (and NA maps to "off") |
| |
| |
| UTILITIES |
| |
| o 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 of |
| function 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 CMD |
| check) now restores the search path after every help file. |
| |
| o checkS3methods() in package 'tools' now also looks for generics |
| in the loaded namespaces/packages listed in the Depends fields |
| of the package's DESCRIPTION file when testing an installed |
| package. |
| |
| o The DESCRIPTION file of packages may contain a 'Suggests:' |
| field for packages that are only used in examples or |
| vignettes. |
| |
| o Added an option to package.dependencies() to handle the |
| 'Suggests' levels of dependencies. |
| |
| o Vignette dependencies can now be checked and obtained via |
| vignetteDepends. |
| |
| o Option 'repositories' to list URLs for package repositories |
| added. |
| |
| o package.description() has been replaced by packageDescription(). |
| |
| o R CMD INSTALL/build now skip Subversion's .svn directories as |
| well as CVS directories. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o arraySubscript and vectorSubscript take a new argument which |
| is a function pointer that provides access to character |
| strings (such as the names vector) rather than assuming these |
| are passed in. |
| |
| o R_CheckUserInterrupt is now described in `Writing R Extensions' |
| and there is a new equivalent subroutine rchkusr for calling |
| from 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_alloc |
| and S_realloc, since current S versions use these forms. |
| |
| o The type used for vector lengths is now R_len_t rather than |
| int, to allow for a future change. |
| |
| o The internal header nmath/dpq.h has slightly improved macros |
| R_DT_val() and R_DT_Cval(), a new R_D_LExp() and improved |
| R_DT_log() and R_DT_Clog(); this improves accuracy in several |
| [dpq]-functions {for "extreme" arguments}. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o 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 longer |
| recognized as synonyms for --min-nsize and --min-vsize (which |
| replaced them in 1.2.0). |
| |
| o Unnecessary methods coef.{g}lm and fitted.{g}lm have been |
| removed: 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 are |
| equivalent to psigamma(, deriv=2) and psigamma(, deriv=3). |
| |
| o LTRUE/LFALSE in Rmath.h have been removed: they were |
| deprecated in 1.2.0. |
| |
| o package.contents() and package.description() have been deprecated. |
| |
| |
| INSTALLATION CHANGES |
| |
| o The defaults for configure are now --without-zlib |
| --without-bzlib --without-pcre. |
| |
| The included PCRE sources have been updated to version 4.5 and |
| PCRE >= 4.0 is now required if --with-pcre is used. |
| |
| The included zlib sources have been updated to 1.2.1, and this |
| is now required if --with-zlib is used. |
| |
| o configure no longer lists bzip2 and PCRE as `additional |
| capabilities' 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 FIXES |
| |
| o When lm.{w}fit() disregarded arguments in ... they reported |
| the 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 longer |
| follows glibc in silently `correcting' invalid inputs. |
| |
| o The cor() function did not remove missing values in the |
| non-Pearson case. |
| |
| o [l]choose() use a more accurate formula which also slightly |
| improves p- and qhyper(); choose(n, k) now returns 0 instead |
| of NaN for k < 0 or > n. |
| |
| o find(simple.words=TRUE) (the default) was still using regular |
| expressions for e.g. "+" and "*". Also, it checked the mode |
| only of the first object matching a regular expression found |
| in 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 were |
| used in a single call. (PR#5314, plus another potential leak.) |
| |
| o Non-finite input values to eigen(), La.eigen(), svd() and |
| La.svd() are now errors: they often caused infinite |
| looping. (PR#5406, PR#4366, PR#3723: the fix for 3723/4366 |
| returned a vector of NAs, not a matrix, for the eigenvectors.) |
| |
| o stepfun(x,y) now gives an error when `x' has length 0 instead |
| of an invalid result (that could lead to a segmentation |
| fault). |
| |
| o buildVignettes() uses file.remove() instead of unlink() to |
| remove temporary files. |
| |
| o methods(class = "lqs") does not produce extraneous entries anymore. |
| |
| o Directly calling a method that uses NextMethod() no longer |
| produces the erroneous error message 'function is not a |
| closure'. |
| |
| o chisq.test(x, simulate.p.value = TRUE) could hang in an infinite |
| loop or segfault, as r2dtable() did, when the entries in x where |
| large. (PR#5701) |
| |
| o fisher.test(x) could give a P-value of 'Inf' in similar cases which |
| now result in an error (PR#4688). It silently truncated |
| non-integer 'x' instead of rounding. |
| |
| o cutree(a, h=h) silently gave wrong results when 'a' was an |
| agnes object; now gives an error and reminds of as.hclust(). |
| |
| o postscript() could crash if given a font value outside the |
| valid 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 now |
| always has levels c("FALSE", "TRUE") even if only one (or |
| none) 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 be |
| used and have been removed. glm had na.action=na.fail, again |
| never used. |
| |
| o The internal tools function for listing all internal S3 generics |
| was omitting all the members of the S3 group generics, which |
| also accept methods for members. |
| |
| o Some BLASes were returning NA %*% 0 as 0 and some as NA. Now |
| slower but more careful code is used if NAs are present. (PR#4582) |
| |
| o package.skeleton() no longer generates invalid filenames for |
| code and help files. Also, care is taken not to generate |
| filenames that differ only by case. |
| |
| o pairs() now respects axis graphical parameters such as |
| cex.main, font.main and las. |
| |
| o Saving images of packages with namespaces (such as mle) was |
| not compressing the image. |
| |
| o When formula.default() returned a terms object, it returned a |
| result of class c("terms", "formula") with different |
| subsetting rules from an object of class "formula". |
| |
| o The standalone Rmath library did not build correctly on systems |
| with 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 not |
| have, and discarded the class of the answer. |
| |
| o object.size() now returns a real (not integer) answer and so |
| can cope with objects occupying more than 2Gb. |
| |
| o Lookups base:: and ::: were not confining their search to the |
| named package/namespace. |
| |
| o qbinom() was returning NaN for prob = 0 or 1 or size = 0 even |
| though 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 in |
| namespaces were broken if the S3 generic was converted into an |
| S4 generic by setting an S4 method. |
| |
| o Title and copyright holder of the reference manual are now in |
| sync with the citation() command. |
| |
| o The validation code for POSIXlt dates and hence |
| seq(, by="DSTdays") now works for large mday values (not |
| just those in -1000...1000). (PR#6212) |
| |
| o The print() method for data frames now copes with data frames |
| containing arrays (other than matrices). |
| |
| o texi2dvi() and buildVignettes() use clean=FALSE as default |
| because the option is not supported on some Solaris |
| machines. For buildVignettes() this makes no difference as it |
| uses 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 for |
| some 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 where |
| summary(model)$dispersion != 1. |
| |
| o Calling princomp() with a covariance matrix (rather than a |
| list) failed to predict scores rather than predict NA as |
| intended. (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 assigned |
| terms to strata. (PR#6510) |
| |
| o ftable() incorrectly handled arguments named "x". (PR#6541) |
| |
| o vector(), matrix(), array() and their internal equivalents |
| report correctly that the number of elements specified was too |
| large (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 generic |
| with a method for factors). |
| |
| o x <- 2^32; x:(x+3) no longer generates an error (but gives a |
| result 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 for |
| alph > 1e5 instead of alph > 1000. This also improves the accuracy |
| of ppois(). |
| |
| o qgamma() now does one or more final Newton steps, increasing |
| accuracy 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 and |
| qchisq(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 the |
| shell, for example allowing & and $ to occur in the URL. |
| |
| It was incorrectly attempting to use -remote "openURL()" for |
| unknown 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-constant |
| inputs, and scaling badly for constant ones. (Partly PR#6645) |
| |
| o system() under Unix was losing the 8095th char if the output |
| was 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 op |
| vector operations, but not on vector op matrix ones. (PR#6633 |
| and more.) |
| |
| Comparison operators did not warn about inconsistent lengths |
| for real vectors, but did for integer, logical and character |
| vectors. |
| |
| o spec.pgram(x, ..., pad, fast, ...) computed the periodogram with |
| a 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), and |
| so 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 had |
| been 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 the |
| body of an anonymous function(x), leading to a variable |
| capture issue. Now, function(...) is used instead. |
| |
| o chisq.test(simulate.p.value = TRUE) was returning slightly |
| incorrect p values, notably p = 0 when the data gave the most |
| extreme value. |
| |
| o terms.formula(simplify = TRUE) was losing offset terms. |
| Multiple offset terms were not being removed correctly if two |
| of 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 but |
| returned them as NA in all components in the interpreted code |
| for factors. (PR#6672) |
| |
| o points.formula() had problems if there was a subset argument |
| and no data argument. (PR#6652) |
| |
| o as.dist() does a bit more checking of its first argument and now |
| warns 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 find |
| methods for classes that extend sealed classes (class unions |
| that contain basic classes, e.g.). |
| |
| o Sweave no longer wraps the output of code chunks with |
| echo=false and results=tex in Schunk environments. |
| |
| o termplot() handles models with missing data better, especially |
| with 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 handled |
| correctly. Mixing negative and NA subscripts is now caught as |
| an error: it was not caught on some platforms and segfaulted |
| on others. |
| |
| o gzfile() connections had trouble at EOF when used on uncompressed |
| file. |
| |
| o The Unix version of dataentry segfaulted if the `Copy' button |
| was 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 (still |
| with some warnings). |
| |
| o seq.POSIXt(from, to, by="DSTdays") was shorter than expected |
| for 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 the |
| number 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 sorted |
| by group levels. (PR#6739) |
| |
| |
| |
| ************************************************** |
| * * |
| * 1.8 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.8.1 |
| |
| |
| NEW FEATURES |
| |
| o There is now a "Complex" S3 group generic (a side-effect of |
| fixing up the corresponding S4 group generic). |
| |
| o help("regex") now gives a description of the regular expressions |
| used in R. |
| |
| o The startup message now shows the R Foundation as copyright |
| holder, and includes the R ISBN number and a pointer to the new |
| citation() function. |
| |
| o The solve() function now uses the `tol' argument for all |
| non-complex cases. The default tolerance for LINPACK is 1e-7, |
| as before. For LAPACK it currently is .Machine$double.eps but |
| may be changed in later versions of R. |
| |
| o help.search() now defaults to agrep = FALSE when keyword= is |
| specified, since no one wants fuzzy matching of categories. |
| |
| o Function texi2dvi() in package tools can be used to compile |
| latex files from within R, provided the OS has a command |
| texi2dvi or texify. |
| |
| o Objects with formal S4 classes saved in pre-1.8 versions and |
| loaded into the current version have incompatible class |
| attributes (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 corresponding |
| dendrogram. |
| |
| o An "antifeature": Tcl 8.0 is now officially unsupported. In 1.8.0 |
| it just didn't work. This very old version lacks several features |
| that are needed for the new version of the tcltk package. R will |
| still build the tcltk package against Tcl 8.0 but the resulting |
| package will not load. |
| |
| |
| BUG FIXES |
| |
| o symnum(x) now behaves as documented when length(x) == 0 and uses |
| lower.triangular = FALSE for logical arrays. |
| |
| o c() now has a method for "noquote" objects and hence works as |
| expected. |
| |
| 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 differs |
| only by leading/trailing space |
| |
| o Added check for user interrupt in Rvprintf to allow printing to be |
| interrupted. |
| |
| o Fixed bug that would cause segfault on protect stack overflow. |
| |
| o crossprod() on matrices with zero extents would return an |
| uninitialized matrix (rather than one filled with zeros). |
| |
| o DF[[i,j]] for a data frame used row j and col i, not as intended |
| row i and col j. |
| |
| o Even more user errors in recursive indexing of lists are now |
| caught. (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 the |
| arguments had only one column. (PR#4299) |
| |
| o Subsetting a one-dimensional array dropped dimensions even when |
| they were not of length one. (Related to PR#4110) |
| |
| o The plot() method for `ecdf' objects, plot.ecdf(), now allows to |
| set 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 a |
| repository, and contacts the correct paths in the repositories |
| under Windows. |
| |
| o .setOldIs (methods) contained a typo stopping POSIXct objects (etc) |
| being included in formal classes. |
| |
| o terms() sometimes removed offset() terms incorrectly, since it |
| counted by variables and not terms. Its "offset" attribute |
| was incorrectly documented as referring to terms not |
| variables. (Related to PR#4941) |
| |
| o buildVignettes() and pkgVignettes() in package tools are now |
| documented. The call to texi2dvi is wrapped in the new |
| function texi2dvi() which also works on Windows. |
| |
| o hclust() was sometimes not finding the correct inter-cluster |
| distances 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 that |
| factors having at least 2 levels (or one level and a contrast |
| matrix): model.matrix() gave nonsensical results for 0-level |
| factors. |
| |
| o writeChar() could segfault if more characters were requested |
| than 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 device |
| did not work. |
| |
| o The example code on the man page for TkWidgetcmds had not been |
| updated after the change that made tkget (et al.) return |
| tclObj 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 caused |
| problems if the last thing in a section was \preformatted{} |
| (and potentially elsewhere). |
| |
| o Under some circumstances mosaicplot() failed if main was |
| supplied as it was passed on to model.frame.default(). |
| |
| o Conversion to POSIXlt (including printing) of POSIXct dates |
| before 1902 and after 2038 computed which were leap years from |
| (year-1900) so got some xx00 years wrong. |
| |
| |
| CHANGES IN R VERSION 1.8.0 |
| |
| |
| MACOS CHANGES |
| |
| o As from this release there is only one R port for the |
| Macintosh, which runs only on Mac OS X. (The `Carbon' port has |
| been discontinued, and the `Darwin' port is part of the new |
| version.) The current version can be run either as a |
| command-line application or as an `Aqua' console. There is a |
| `Quartz' device quartz(), and the download and installation of |
| both source and binary packages is supported from the Aqua |
| console. Those CRAN and BioC packages which build under Mac OS X |
| have binary versions updated daily. |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o The defaults for glm.control(epsilon=1e-8, maxit=25) have been |
| tightened: this will produce more accurate results, slightly |
| slower. |
| |
| o sub, gsub, grep, regexpr, chartr, tolower, toupper, substr, |
| substring, abbreviate and strsplit now handle missing values |
| differently from "NA". |
| |
| o Saving data containing name space references no longer warns |
| about name spaces possibly being unavailable on load. |
| |
| o On Unix-like systems interrupt signals now set a flag that is |
| checked periodically rather than calling longjmp from the |
| signal handler. This is analogous to the behavior on Windows. |
| This reduces responsiveness to interrupts but prevents bugs |
| caused by interrupting computations in a way that leaves the |
| system in an inconsistent state. It also reduces the number |
| of system calls, which can speed up computations on some |
| platforms and make R more usable with systems like Mosix. |
| |
| |
| CHANGES TO THE LANGUAGE |
| |
| o Error and warning handling has been modified to incorporate a |
| flexible condition handling mechanism. See the online |
| documentation of 'tryCatch' and 'signalCondition'. Code that |
| does not use these new facilities should remain unaffected. |
| |
| o A triple colon operator can be used to access values of internal |
| variables in a name space (i.e. a:::b is the value of the internal |
| variable b in name space a). |
| |
| o Non-syntactic variable names can now be specified by inclusion |
| between backticks `Like This`. The deparse() code has been |
| changed to output non-syntactical names with this convention, |
| when they occur as operands in expressions. This is controlled |
| by a `backtick' argument, which is by default TRUE for |
| composite expressions and FALSE for single symbols. This |
| should give minimal interference with existing code. |
| |
| o Variables in formulae can be quoted by backticks, and such |
| formulae can be used in the common model-fitting functions. |
| terms.formula() will quote (by backticks) non-syntactic names |
| in its "term.labels" attribute. [Note that other code using |
| terms objects may expect syntactic names and/or not accept |
| quoted names: such code will still work if the new feature is |
| not used.] |
| |
| |
| NEW FEATURES |
| |
| o 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 set |
| for 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 with |
| all three missing value strategies. |
| |
| o New utility function cov2cor() {Cov -> Corr matrix}. |
| |
| o cut.POSIXt() now allows `breaks' to be more general intervals |
| as 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 now |
| have a diff() method. |
| |
| o dt(*, ncp = V) is now implemented, thanks to Claus Ekstrom. |
| |
| o dump() only quotes object names in the file where necessary. |
| |
| o eval() of a promise forces the promise |
| |
| o file.path() now returns an empty character vector if given at |
| least one zero-length argument. |
| |
| o format() and hence print() make an effort to handle corrupt |
| data frames, with a warning. |
| |
| o format.info() now also works with `nsmall' in analogy with |
| format.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 on |
| S4 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 the |
| need 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 accept |
| a wider range of coordinate specifications. |
| |
| o Added function library.dynam.unload() to call dyn.unload() on |
| a loaded DLL and tidy up. This is called for all the standard |
| packages 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 normal |
| code: 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 auxiliary |
| function make.unique(). (Based on code contributed by Tom |
| Minka, since converted to a .Internal function.) In |
| particular make.names() now recognises that names beginning |
| with a dot are valid and that reserved words are not. |
| |
| o methods() has a print method which asterisks functions which |
| are not user-visible. methods(class = "foo") now lists |
| non-visible functions, and checks that there is a matching generic. |
| |
| o model.matrix() now warns when it removes the response from the |
| rhs of the formula: that this happens is now documented on its |
| help page. |
| |
| o New option `locatorBell' to control the confirmation beep |
| during the use of locator() and identify(). |
| |
| o New option("scipen") provides some user control over the |
| printing of numbers in fixed-point or exponential notation. |
| (Contributed by David Brahm.) |
| |
| o plot.formula() now accepts horizontal=TRUE and works correctly |
| when boxplots are produced. (Wishlist PR#1207) The code has |
| been much simplified and corrected. |
| |
| o polygon() and rect() now interpret density < 0 or NA to mean |
| filling (by colour) is desired: this allows filling and |
| shading 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 and |
| this by default omitted cases with missing values, even if set |
| to `na.exclude'.] |
| |
| o print.summary.glm() now reports omitted coefficients in the |
| same way as print.summary.lm(), and both show them as NAs in |
| the table of coefficients. |
| |
| o print.table() has a new argument `zero.print' and is now |
| documented. |
| |
| o rank(x, na.last = "keep") now preserves NAs in `x', and the |
| argument `ties.method' allows to use non-averaging ranks in the |
| presence of ties. |
| |
| o read.table()'s 'as.is' argument can be character, naming columns |
| not to be converted. |
| |
| o rep() is now a generic function, with default, POSIXct and |
| POSIXlt methods. For efficiency, the base code uses rep.int() |
| rather than rep() where possible. |
| |
| o New function replicate() for repeated evaluation of expression |
| and collection of results, wrapping a common use of sapply() |
| for simulation purposes. |
| |
| o rev() is now a generic function, with default and dendrogram |
| methods. |
| |
| o serialize() and unserialize() functions are available for |
| low-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 method |
| for small integers). The default "shell" method works faster |
| on long vectors with many ties. |
| |
| o stripchart() now has `log', `add' and `at' arguments. |
| |
| o strsplit(x, *) now preserves names() but won't work for |
| non-character `x' anymore {formerly used as.character(x), |
| destroying names(x)}. |
| |
| o textConnection() now has a local argument for use with output |
| connections. local = TRUE means the variable containing the |
| output is assigned in the frame of the caller. |
| |
| o Using UseMethod() with more than two arguments now gives a |
| warning (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", allowing |
| lines 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's |
| workspace. Previously the first place a variable of that name |
| was 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-like |
| subscripting. |
| |
| - 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 convert |
| character 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 of |
| times will produce the right number of values, this is |
| always done (rather than some times but not others). |
| |
| - Replacement list values can include NULL elements. |
| |
| - Subsetting a data frame can no longer produce duplicate |
| column names. |
| |
| - Subsetting with drop=TRUE no longer sometimes drops |
| dimensions 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 be |
| named, 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 such |
| column names now works. |
| |
| - Row names in extraction are still made unique, but without |
| forcing 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 S |
| does. (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 one |
| element is added (as S does). |
| |
| o There is a new command-line flag --args that causes the rest of |
| the command line to be skipped (but recorded in commandArgs() |
| for further processing). |
| |
| o S4 generic functions and method dispatch have been modified to |
| make the generic functions more self-contained (e.g., usable |
| in apply-type operations) and potentially to speed dispatch. |
| |
| o The data editor is no longer limited to 65535 rows, and will |
| be 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(); it |
| can be disabled by calling gc.time(FALSE). This can speed up |
| the garbage collector and reduce system calls on some |
| platforms. |
| |
| |
| STANDARD PACKAGES |
| |
| o New package 'mle'. This is a simple package to find maximum |
| likelihood estimates, and perform likelihood profiling and |
| approximate confidence limits based upon it. A well-behaved |
| likelihood function is assumed, and it is the responsibility |
| of the user to gauge the applicability of the asymptotic |
| theory. This package is based on S4 methods and classes. |
| |
| o Changes in package 'mva': |
| |
| - factanal() now returns the test statistic and P-value formerly |
| computed in the print method. |
| |
| - heatmap() has many more arguments, partly thanks to Wolfgang |
| Huber 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' argument |
| defaulting 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 will |
| now need to use unloadNamespace("tcltk"). |
| |
| - The interface to Tcl has been made much more efficient by |
| evaluating Tcl commands via a vector of Tcl objects rather |
| than by constructing the string representation. |
| |
| - An interface to Tcl arrays has been introduced. |
| |
| - as.tclObj() has gained a `drop' argument to resolve an |
| ambiguity for vectors of length one. |
| |
| o Changes in package 'tools': |
| |
| - Utilities for testing and listing files, manipulating file |
| paths, and delimited pattern matching are now exported. |
| |
| - Functions checkAssignFuns(), checkDocArgs() and checkMethods() |
| have been renamed to checkReplaceFuns(), checkDocFiles(), and |
| checkS3methods, to given better descriptions of what they do. |
| |
| - R itself is now used for analyzing the markup in the \usage |
| sections. Hence in particular, replacement functions or S3 |
| replacement methods are no longer ignored. |
| |
| - checkDocFiles() now also determines 'over-documented' arguments |
| which are given in the \arguments section but not in \usage. |
| |
| - checkDocStyle() and checkS3Methods() now know about internal S3 |
| generics and S3 group generics. |
| |
| - S4 classes and methods are included in the QC tests. |
| Warnings will be issued from undoc() for classes and |
| methods defined but not documented. Default methods |
| automatically generated from nongeneric functions do not |
| need to be documented. |
| |
| - New (experimental) functions codocClasses() and codocData() |
| for code/documentation consistency checking for S4 classes and |
| data 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 fitted |
| values. The plot method allows `ylim' to be set. |
| |
| - plot.ts() has a new argument `nc' controlling the number of |
| columns (with default the old behaviour for plot.mts). |
| |
| - StructTS() now allows the first value of the series to be |
| missing (although it is better to omit leading NAs). (PR#3990) |
| |
| |
| USING PACKAGES |
| |
| o library() has a pos argument, controlling where the package is |
| attached (defaulting to pos=2 as before). |
| |
| o require() now maintains a list of required packages in the |
| toplevel environment (typically, .GlobalEnv). Two features |
| use this: detach() now warns if a package is detached that is |
| required by an attached package, and packages that install |
| with 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 with |
| or without saved images (saved images are still recommended |
| for efficiency), writing setMethod(), etc. calls with the |
| default for argument `where'. The topenv() function and |
| sys.source() have been changed correspondingly. See the |
| online help. |
| |
| o Users can specify in the DESCRIPTION file the collation order |
| for files in the R source directory of a package. |
| |
| |
| DOCUMENTATION CHANGES |
| |
| o Changes in R documentation format: |
| |
| - New logical markup commands for emphasizing (\strong) and |
| quoting (\sQuote and \dQuote) text, for indicating the usage |
| of an S4 method (\S4method), and for indicating specific kinds |
| of 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 a |
| contribution by Greg Warnes.) |
| |
| - New markup \concept for concept index entries for use by |
| help.search(). |
| |
| o Rdconv now produces more informative output from the special |
| \method{GENERIC}{CLASS} markup for indicating the usage of S3 |
| methods, providing the CLASS info in a comment. |
| |
| o \dontrun sections are now marked within comments in the |
| user-readable versions of the converted help pages. |
| |
| o \dontshow is now the preferred name for \testonly. |
| |
| |
| INSTALLATION CHANGES |
| |
| o The zlib code in the sources is used unless the external |
| version found is at least version 1.1.4 (up from 1.1.3). |
| |
| o The regression checks now have to be passed exactly, except |
| those depending on recommended packages (which cannot be |
| assumed to be present). |
| |
| o The target make check-all now runs R CMD check on all the |
| recommended 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 was |
| previously built as a shared object). |
| |
| o If a system function log1p is found, it is tested for accuracy |
| and if inadequate the substitute function in src/nmath is |
| used, with name remapped to Rlog1p. (Apparently needed on |
| OpenBSD/NetBSD.) |
| |
| |
| C-LEVEL FACILITIES |
| |
| o There is a new installed header file R_ext/Parse.h which |
| allows R_ParseVector to be called by those writing extensions. |
| (Note that the interface is changed from that used in the |
| unexported header Parse.h in earlier versions, and is not |
| guaranteed to remain unchanged.) |
| |
| o The header R_ext/Mathlib.h has been removed. It was replaced by |
| Rmath.h in R 1.2.0. |
| |
| o PREXPR has been replaced by two macros, PREXPR for obtaining the |
| expression 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_EXPR |
| returns the expression that was compiled; if the body is not |
| compiled then the body is returned. This is to support byte |
| compilation. |
| |
| o Internal support for executing byte compiled code has been added. |
| A compiler for producing byte compiled code will be made available |
| separately and should become part of a future R release. |
| |
| o On Unix-like systems calls to the popen() and system() C library |
| functions now go through R_popen and R_system. On Mac OS X these |
| suspend SIGALRM interrupts around the library call. (Related to |
| PR#1140.) |
| |
| |
| UTILITIES |
| |
| o R CMD check accepts "ORPHANED" as package maintainer. Package |
| maintainers can now officially orphan a package, i.e., resign |
| from maintaining a package. |
| |
| o R CMD INSTALL (Unix only) is now 'safe': if the attempt to |
| install a package fails, leftovers are removed. If the package |
| was already installed, the old version is restored. |
| |
| o R CMD build excludes possible (obsolete) data and vignette |
| indices in DCF format (and hence also no longer rebuilds them). |
| |
| o R CMD check now tests whether file names are valid across file |
| systems and supported operating system platforms. There is some |
| support for code/documentation consistency checking for data |
| sets and S4 classes. Replacement functions and S3 methods in |
| \usage sections are no longer ignored. |
| |
| o R CMD Rdindex has been removed. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The assignment operator `_' has been removed. |
| |
| o printNoClass() is defunct. |
| |
| o The classic Mac OS port is no longer supported, and its files |
| have 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 functionality |
| incorporated into pacf.default/plot.ts(). |
| |
| o print.coefmat() is deprecated in favour of printCoefmat() |
| (which is identical apart from the default for na.print which |
| is changed from "" to "NA", and better handling of the 0-rank |
| case where all coefficients are missing). |
| |
| o codes() and codes<-() are deprecated, as almost all uses |
| misunderstood 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: the |
| POSIXt 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 their |
| methods 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 standalone |
| Rmath has been removed. |
| |
| |
| BUG FIXES |
| |
| o ARMAacf() sometimes gave too many results or failed if `lag.max' |
| was used. |
| |
| o termplot() with a subset of terms now gives correct partial residuals |
| |
| o Functions anova.glm(), contrasts(), getS3method(), glm() and |
| make.tables() were applying get() without asking for a |
| function and/or not starting the search in the environment of |
| the caller. |
| |
| o as.data.frame.matrix() ignored the `row.names' argument. |
| |
| o as.data.frame.list(optional = TRUE) was converting names, and |
| hence 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 a |
| bug in isVectorizable. |
| |
| o On some platforms the wday component of the result of |
| as.POSIXlt() was corrupted when trying to guess the DST offset |
| at 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 in |
| different places: they now both look starting at the |
| environment in which they are called. Several documentation |
| errors 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 paths |
| variable got corrupted. |
| |
| o data.frame() failed with a nonsensical error message if it |
| grabbed row names from an argument that was subsequently |
| recycled. Now they are discarded, with a warning. |
| |
| o data.matrix() was documented to replace factors by their |
| codes, but in fact re-coded into the alphabetical ordering of |
| the levels. |
| |
| o decompose() with even frequency used an asymmetric moving |
| average window. |
| |
| o demo() was using `topic' as a regexp rather than an exact match. |
| |
| o dotchart() now does recycle the `color' argument and better |
| documents the `bg' one (PR#4343). |
| |
| o getAnywhere() didn't not correctly check for S3 methods, when |
| the 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 the |
| time series to be longer than the filter. |
| |
| o format(*, nsmall = m) with m > 0 now returns exponential format |
| less often. |
| |
| o get() and exists() were ignoring the `mode' argument for |
| variables in base. The error message for get() now mentions |
| the mode requested if not "any". A bug in setting the NAMED |
| field in do_get was fixed. |
| |
| o getS3method(f, cl, optional=TRUE) now returns NULL if `f' does |
| not exist. |
| |
| o HoltWinters() would segfault if only gamma was optimized, and |
| not 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 empty |
| model) lm() and glm() fits. |
| |
| o lm.influence() now handles 0-rank models, and names its output |
| appropriately. It also ensures that hat values are not greater |
| than 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 generic |
| dispatches on a name other than its own. (The cases of |
| coefficients() 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 composite |
| expression. |
| |
| o .NotYetImplemented() gave "Error in .NotYet...(): .." |
| |
| o numericDeriv() was failing if the first argument was a name |
| rather 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: it |
| should be 2, 4, 6 or 8. |
| |
| o Using lty=as.integer(NA) and as.double(NA) were being accepted |
| but giving nonsensical results. Those are not documented |
| valid values for lty. (PR#3217) |
| |
| o Erroneously calling par(new=TRUE) with no plot was not caught |
| and so could result in invalid graphics files. (PR#4037) |
| |
| o par(tck=) was being interpreted incorrectly. It is now |
| documented in the same way as S, and now behaves as |
| documented. (PR#3504) |
| |
| o plclust() [and hence plot.hclust()] sometimes now uses correct `ylim's |
| also 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 now |
| enforce 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() was |
| imperfect, causing unnecessarily verbose output (-0.00 instead of |
| 0) 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" attributes |
| such 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) dimnames |
| anymore. |
| |
| o scan() now interprets quoting in fields to be skipped. (PR#4128) |
| |
| o seq.POSIXt(from, to, by="DSTday") was failing or calculating |
| the 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 a |
| function. The fix [to C-level coerceVector()] now gives an error |
| instead of passing through. This may catch other potential |
| problems. |
| |
| o Sweave() reports the chunk number rather than the driver call when |
| a try error gets caught. |
| |
| o trunc.POSIXt(x) for 0-length x does not return invalid structures |
| anymore. (PR#3763). |
| |
| o warnings() now returns NULL instead of an error when no warnings |
| have occured yet. (PR#4389) |
| |
| o Using write.table() setting the `dec' argument and with no |
| numeric 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 a |
| namespace 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) are |
| corrected. |
| |
| 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 defined |
| nonsensically as widget commands. They have been redefined to be |
| more useful now. |
| |
| o Registered group generics were not being used. (PR#3536) |
| |
| o Subsetting data frames did not always correctly detect that |
| non-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 name |
| was a symbol, which could cause a segfault. |
| |
| o Fixed bug in S4 methods dispatch that made local variables in the |
| generic visible when executing the body of a method, thus violating |
| lexical scope. |
| |
| |
| |
| |
| ************************************************** |
| * * |
| * 1.7 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.7.1 |
| |
| |
| NEW FEATURES |
| |
| o The help pages give appropriate references to the Blue, |
| White or Green books for functions based on the descriptions |
| of S functions given there. (E&OE) |
| |
| o Function getAnywhere() can find non-exported objects, for |
| namespaces or registered methods. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The (unimplemented) argument 'white' of parse() is deprecated. |
| |
| o The tkfilefind demo in the tcltk library is deprecated, since |
| it never worked well, and apparently not at all with Tcl/Tk 8.4. |
| |
| |
| BUG FIXES |
| |
| o print.table() used too much white space in some cases in 1.7.0. |
| |
| o selectMethod() failed if `f' was a non-generic and |
| optional=TRUE, and gave a confusing error message if |
| optional=FALSE. |
| |
| o pchisq(*, ncp) and qchisq(*, ncp) work in more cases for large ncp |
| or 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 definition |
| generates an error (previously some invalid metadata could be |
| left behind). |
| |
| o A number of errors are now caught in setClass() that |
| previously either went unchecked or waited until new() to |
| appear: |
| - classes may not contain themselves, directly or indirectly; |
| - classes appearing either as slots or as superclasses must |
| themselves be defined; |
| - slot names (direct or inherited) must be unique. |
| In related changes, prototype() now works as documented, and is the |
| recommended 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 namespace |
| was both exported and registered. |
| |
| o The internal zip.unpack() could crash if more than 500 files |
| were to be extracted. (PR#2818) |
| |
| o The "r+" and "r+b" modes of opening file connections disallowed |
| writing. |
| |
| o library() now warns the user if the chosen package name |
| doesn't match the internal package name, and corrects the |
| error. (PR#2816) |
| |
| o qr(LAPACK=TRUE) (and qr for complex arguments) might have failed |
| to pivot for rank-deficient inputs. (PR#2867) |
| |
| o Only re-mapped symbols are exported by regex.o, to avoid |
| problems with embedded R on RedHat 9. |
| |
| o arima() did not set transform.pars to FALSE if AR parameters |
| were fixed, although it claimed to. |
| |
| o pnorm() was slower than necessary in the outer tails in some |
| cases due to a typo in the improvements from PR#699. (PR#2883) |
| |
| o setGeneric() and setMethod() now catch some examples where the |
| generic and the method have different argument lists; the |
| evaluator checks for internal consistency of these argument lists. |
| |
| o expand.grid(x) {the rare case of one argument} now treats factor |
| levels 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 not |
| work for arrays with more than two dimensions. They could |
| create dimnames of the form list(NULL, NULL) rather than |
| remove the dimnames attribute. |
| |
| o termplot() gave incorrect answers with rug=TRUE or |
| partial=TRUE for factors whose levels were not in |
| lexicographical order. |
| |
| o A serious performance flaw in as() computations was fixed (the |
| methods 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. Pro |
| tem, editing objects with more than 65535 rows is an error, |
| and objects cannot be extended beyond that row. This restriction |
| will be removed in 1.8.0. (PR#2962) |
| |
| o A bug could produce apparent loops in formal method selection |
| when inheritance was restricted (used for the as() function). |
| A related problem sometimes broke attaching a package that had |
| methods for basic functions, such as names(), used in method |
| selection. |
| |
| o Empty expressions as in return(x,) could generate subsequent |
| segfaults: they are now errors. (PR#2880) |
| |
| o The Kinderman-Ramage Normal Random Generator had several |
| problems leading to not-quite normally distributed variates |
| (PR#2846). One problem was traced to an error in the original |
| 1976 JASA paper! Thanks to Josef Leydold and his team for |
| investigating this. The old generator has been retained for |
| reproducibility 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 the |
| normal place, near the top of the file, and quotes class |
| names in signatures. |
| |
| o getS3method() and methods() were not finding methods for |
| coefficients() and fitted.values() (which dispatch on "coef" |
| and "fitted" respectively). |
| |
| o scan() (and hence read.table) was not finding matches for |
| separator 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 all |
| samples gave singular fits. |
| |
| o predict.lm(*, se=TRUE) {w/ weights, w/o newdata} now gives correct |
| SE's. (PR#3043) |
| |
| o cor.test(x, y, method="spearman") now also works for |
| length(x) > 1290. |
| |
| o Matrices were printed mis-aligned if right=TRUE and na.print |
| was specified. (PR#3058) |
| |
| o R CMD check gives now a clearer message when latex produces |
| errors 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 in |
| the way prescribed by file.show() |
| |
| o legend(*, pch=p, lty=l) now works better when `p' or `l' have |
| NAs. |
| |
| o All braces in regular expressions used by Sweave() are now |
| escaped by a backslash. |
| |
| o unloadNamespace() failed because getNamespaceImports() now coerces a |
| string argument to a name space. |
| |
| o deriv3 gave incorrect Hessians for some very simple |
| expressions such as expression(x*y) (since the comments in the |
| C 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 might |
| have been plotted inaccurately in 1.7.0. (PR#3132) |
| |
| Solid lines in postscript() output are split into groups of 1000 |
| segments to help some PostScript interpreters (typically old |
| level-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 series |
| from the parent environment. |
| |
| o eigen() and La.eigen() were not returning a matrix of |
| eigenvectors for a 1x1 input. |
| |
| o hsv() and rgb() now return character(0) when one of their args has |
| length 0. This also fixes terrain.color(1). (PR#3233) |
| |
| o [[<-.data.frame checked if a replacment was too short, but not |
| if it was too long. (related to PR#3229) |
| |
| o qt(x, df) was quite inaccurate for df=1+epsilon; it is now much more |
| accurate 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 suggested |
| in the 2nd followup to PR#2894. |
| |
| |
| |
| CHANGES IN R VERSION 1.7.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o solve(), chol(), eigen() and svd() now use LAPACK routines |
| unless a new back-compatibility option is turned on. The |
| signs and normalization of eigen/singular vectors may change |
| from earlier versions. |
| |
| o The `methods', `modreg', `mva', `nls' and `ts' packages |
| are now attached by default at startup (in addition to `ctest'). |
| The option "defaultPackages" has been added which contains the |
| initial list of packages. See ?Startup and ?options for details. |
| Note that .First() is no longer used by R itself. |
| |
| class() now always (not just when `methods' is attached) gives |
| a non-null class, and UseMethod() always dispatches on the |
| class that class() returns. This means that methods like |
| foo.matrix and foo.integer will be used. Functions oldClass() |
| and oldClass<-() get and set the "class" attribute as R |
| without `methods' used to. |
| |
| o The default random number generators have been changed to |
| `Mersenne-Twister' and `Inversion'. A new RNGversion() |
| function allows you to restore the generators of an earlier R |
| version if reproducibility is required. |
| |
| o Namespaces can now be defined for packages other than `base': |
| see `Writing R Extensions'. This hides some internal objects |
| and changes the search path from objects in a namespace. All |
| the base packages (except methods and tcltk) have namespaces, |
| as well as the recommended packages `KernSmooth', `MASS', |
| `boot', `class', `nnet', `rpart' and `spatial'. |
| |
| o Formulae are not longer automatically simplified when terms() |
| is called, so the formulae in results may still be in the |
| original form rather than the equivalent simplified form |
| (which may have reordered the terms): the results are now |
| much closer to those of S. |
| |
| o The tables for plotmath, Hershey and Japanese have been moved |
| from the help pages (example(plotmath) etc) to demo(plotmath) etc. |
| |
| o Errors and warnings are sent to stderr not stdout on |
| command-line versions of R (Unix and Windows). |
| |
| o The R_X11 module is no longer loaded until it is needed, so |
| do test that x11() works in a new Unix-alike R installation. |
| |
| |
| NEW FEATURES |
| |
| o if() and while() give a warning if called with a vector condition. |
| |
| o Installed packages under Unix without compiled code are no |
| longer stamped with the platform and can be copied to other |
| Unix-alike platforms (but not to other OSes because of |
| potential problems with line endings and OS-specific help files). |
| |
| o The internal random number generators will now never return |
| values of 0 or 1 for runif. This might affect simulation |
| output in extremely rare cases. Note that this is not |
| guaranteed for user-supplied random-number generators, nor |
| when the standalone Rmath library is used. |
| |
| o When assigning names to a vector, a value that is too short is |
| padded by character NAs. (Wishlist part of PR#2358) |
| |
| o It is now recommended to use the 'SystemRequirements:' field in |
| the DESCRIPTION file for specifying dependencies external to the |
| R system. |
| |
| o Output text connections no longer have a line-length limit. |
| |
| o On platforms where vsnprintf does not return the needed buffer |
| size the output line-length limit for fifo(), gzfile() and |
| bzfile() has been raised from 10k to 100k chars. |
| |
| o The Math group generic does not check the number of arguments |
| supplied before dispatch: it used to if the default method had |
| one argument but not if it had two. This allows trunc.POSIXt() |
| to be called via the group generic trunc(). |
| |
| o Logical matrix replacement indexing of data frames is now |
| implemented (interpreted as if the lhs was a matrix). |
| |
| o Recursive indexing of lists is allowed, so x[[c(4,2)]] is |
| shorthand for x[[4]][[2]] etc. (Wishlist PR#1588) |
| |
| o Most of the time series functions now check explicitly for a |
| numeric time series, rather than fail at a later stage. |
| |
| o The postscript output makes use of relative moves, and so is |
| somewhat more compact. |
| |
| o %*% and crossprod() for complex arguments make use of BLAS |
| routines and so may be much faster on some platforms. |
| |
| o arima() has coef(), logLik() (and hence AIC) and vcov() methods. |
| |
| o New function as.difftime() for time-interval data. |
| |
| o basename() and dirname() are now vectorized. |
| |
| o biplot.default() {mva} allows `xlab' and `ylab' parameters to |
| be set (without partially matching to `xlabs' and `ylabs'). |
| (Thanks to Uwe Ligges.) |
| |
| o New function capture.output() to send printed output from an expression |
| to a connection or a text string. |
| |
| o ccf() (pckage ts) now coerces its x and y arguments to class "ts". |
| |
| o chol() and chol2inv() now use LAPACK routines by default. |
| |
| o as.dist(.) is now idempotent, i.e., works for "dist" objects. |
| |
| o Generic function confint() and `lm' method (formerly in |
| package MASS, which has `glm' and `nls' methods). |
| |
| o New function constrOptim() for optimisation under linear inequality |
| constraints. |
| |
| o Add `difftime' subscript method and methods for the group |
| generics. (Thereby fixing PR#2345) |
| |
| o download.file() can now use HTTP proxies which require `basic' |
| username/password authentication. |
| |
| o dump() has a new argument `envir'. The search for named |
| objects now starts by default in the environment from which |
| dump() is called. |
| |
| o The edit.matrix() and edit.data.frame() editors can now handle |
| logical data. |
| |
| o New argument `local' for example() (suggested by Andy Liaw). |
| |
| o New function file.symlink() to create symbolic file links |
| where supported by the OS. |
| |
| o New generic function flush() with a method to flush connections. |
| |
| o New function force() to force evaluation of a formal argument. |
| |
| o New functions getFromNamespace(), fixInNamespace() and |
| getS3method() to facilitate developing code in packages with |
| namespaces. |
| |
| o glm() now accepts `etastart' and `mustart' as alternative ways |
| to express starting values. |
| |
| o New function gzcon() which wraps a connection and provides |
| (de)compression compatible with gzip. |
| |
| load() now uses gzcon(), so can read compressed saves from |
| suitable connections. |
| |
| o help.search() can now reliably match individual aliases and |
| keywords, provided that all packages searched were installed |
| using R 1.7.0 or newer. |
| |
| o hist.default() now returns the nominal break points, not those |
| adjusted for numerical tolerances. |
| |
| To guard against unthinking use, `include.lowest' in |
| hist.default() is now ignored, with a warning, unless `breaks' |
| is a vector. (It either generated an error or had no effect, |
| depending how prettification of the range operated.) |
| |
| o New generic functions influence(), hatvalues() and dfbeta() |
| with lm and glm methods; the previously normal functions rstudent(), |
| rstandard(), cooks.distance() and dfbetas() became generic. |
| These have changed behavior for glm objects -- all originating from |
| John Fox' car package. |
| |
| o interaction.plot() has several new arguments, and the legend |
| is not clipped anymore by default. It internally uses axis(1,*) |
| instead of mtext(). |
| This also addresses "bugs" PR#820, PR#1305, PR#1899. |
| |
| o New isoreg() function and class for isotonic regression |
| (`modreg' package). |
| |
| o La.chol() and La.chol2inv() now give interpretable error |
| messages rather than LAPACK error codes. |
| |
| o legend() has a new `plot' argument. Setting it `FALSE' gives |
| size information without plotting (suggested by U.Ligges). |
| |
| o library() was changed so that when the methods package is |
| attached it no longer complains about formal generic functions |
| not specific to the library. |
| |
| o list.files()/dir() have a new argument `recursive'. |
| |
| o lm.influence() has a new `do.coef' argument allowing *not* to |
| compute casewise changed coefficients. This makes plot.lm() much |
| quicker for large data sets. |
| |
| o load() now returns invisibly a character vector of the names |
| of the objects which were restored. |
| |
| o New convenience function loadURL() to allow loading data files |
| from URLs (requested by Frank Harrell). |
| |
| o New function mapply(), a multivariate lapply(). |
| |
| o New function md5sum() in package tools to calculate MD5 |
| checksums on files (e.g. on parts of the R installation). |
| |
| o medpolish() {package eda} now has an `na.rm' argument (PR#2298). |
| |
| o methods() now looks for registered methods in namespaces, and |
| knows about many objects that look like methods but are not. |
| |
| o mosaicplot() has a new default for `main', and supports the |
| `las' argument (contributed by Uwe Ligges and Wolfram Fischer). |
| |
| o An attempt to open() an already open connection will be detected |
| and ignored with a warning. This avoids improperly closing |
| some types of connections if they are opened repeatedly. |
| |
| o optim(method = "SANN") can now cover combinatorial optimization |
| by supplying a move function as the `gr' argument (contributed |
| by Adrian Trapletti). |
| |
| o PDF files produced by pdf() have more extensive information |
| fields, including the version of R that produced them. |
| |
| o On Unix(-alike) systems the default PDF viewer is now determined |
| during configuration, and available as the 'pdfviewer' option. |
| |
| o pie(...) has always accepted graphical pars but only passed |
| them on to title(). Now pie(, cex=1.5) works. |
| |
| o plot.dendrogram (`mva' package) now draws leaf labels if present |
| by default. |
| |
| o New plot.design() function as in S. |
| |
| o The postscript() and PDF() drivers now allow the title to be set. |
| |
| o New function power.anova.test(), contributed by Claus Ekstrom. |
| |
| o power.t.test() now behaves correctly for negative delta in the |
| two-tailed case. |
| |
| o power.t.test() and power.prop.test() now have a `strict' |
| argument that includes rejections in the "wrong tail" in the |
| power calculation. (Based in part on code suggested by Ulrich |
| Halekoh.) |
| |
| o prcomp() is now fast for n x m inputs with m >> n. |
| |
| o princomp() no longer allows the use of more variables than |
| units: use prcomp() instead. |
| |
| o princomp.formula() now has principal argument `formula', so |
| update() can be used. |
| |
| o Printing an object with attributes now dispatches on the |
| class(es) of the attributes. See ?print.default for the fine |
| print. (PR#2506) |
| |
| o print.matrix() and prmatrix() are now separate functions. |
| prmatrix() is the old S-compatible function, and |
| print.matrix() is a proper print method, currently identical |
| to print.default(). prmatrix() and the old print.matrix() |
| did not print attributes of a matrix, but the new print.matrix() |
| does. |
| |
| o print.summary.{lm,glm} now default to symbolic.cor = FALSE, but |
| symbolic.cor can be passed to the print methods from the |
| summary methods. print.summary.{lm,glm} print correlations to |
| 2 decimal places, and the symbolic printout avoids abbreviating |
| labels. |
| |
| o If a prompt() method is called with 'filename' as 'NA', a |
| list-style representation of the documentation shell generated |
| is returned. New function promptData() for documenting objects |
| as data sets. |
| |
| o qqnorm() and qqline() have an optional logical argument |
| `datax' to transpose the plot (S-PLUS compatibility). |
| |
| o qr() now has the option to use LAPACK routines, and the |
| results can be used by the helper routines qr.coef(), qr.qy() |
| and qr.qty(). The LAPACK-using versions may be much faster |
| for large matrices (using an optimized BLAS) but are less |
| flexible. |
| |
| o QR objects now have class "qr", and solve.qr() is now just the |
| method for solve() for the class. |
| |
| o New function r2dtable() for generating random samples of two-way |
| tables with given marginals using Patefield's algorithm. |
| |
| o rchisq() now has a non-centrality parameter `ncp', and there's a |
| C API for rnchisq(). |
| |
| o New generic function reorder() with a dendrogram method; |
| new order.dendrogram() and heatmap(). |
| |
| o require() has a new argument, character.only, |
| -- to make it align with library. |
| |
| o New functions rmultinom() and dmultinom(), the first one with |
| a C API. |
| |
| o New function runmed() for fast runnning medians (`modreg' package). |
| |
| o New function slice.index() for identifying indexes with respect |
| to slices of an array. |
| |
| o solve.default(a) now gives the dimnames one would expect. |
| |
| o stepfun() has a new `right' argument for right-continuous step |
| function construction. |
| |
| o str() now shows ordered factors different from unordered ones. |
| It also differentiates "NA" and as.character(NA), also for factor |
| levels. |
| |
| o symnum() has a new logical argument `abbr.colnames'. |
| |
| o summary(<logical>) now mentions NA's as suggested by |
| Goran Brostrom. |
| |
| o summaryRprof() now prints times with a precision appropriate |
| to the sampling interval, rather than always to 2dp. |
| |
| o New function Sys.getpid() to get the process ID of the R session. |
| |
| o table() now allows exclude= with factor arguments (requested by |
| Michael Friendly). |
| |
| o The tempfile() function now takes an optional second argument |
| giving the directory name. |
| |
| o The ordering of terms for terms.formula(keep.order=FALSE) is |
| now defined on the help page and used consistently, so that |
| repeated calls will not alter the ordering (which is why |
| delete.response() was failing: see the bug fixes). The |
| formula is not simplified unless the new argument `simplify' |
| is true. |
| |
| o added "[" method for terms objects. |
| |
| o New argument `silent' to try(). |
| |
| o ts() now allows arbitrary values for y in start/end = c(x, y): |
| it always allowed y < 1 but objected to y > frequency. |
| |
| o unique.default() now works for POSIXct objects, and hence so |
| does factor(). |
| |
| |
| o Package tcltk now allows return values from the R side to the |
| Tcl side in callbacks and the R_eval command. If the return |
| value from the R function or expression is of class "tclObj" |
| then it will be returned to Tcl. |
| |
| o A new HIGHLY EXPERIMENTAL graphical user interface using the tcltk |
| package is provided. Currently, little more than a proof of concept. |
| It can be started by calling "R -g Tk" (this may change in later |
| versions) or by evaluating tkStartGUI(). Only Unix-like systems |
| for now. It is not too stable at this point; in particular, signal |
| handling is not working properly. |
| |
| |
| o Changes to support name spaces: |
| |
| - Placing base in a name space can no longer be disabled by |
| defining the environment variable R_NO_BASE_NAMESPACE. |
| |
| - New function topenv() to determine the nearest top level |
| environment (usually .GlobalEnv or a name space environment). |
| |
| - Added name space support for packages that do not use methods. |
| |
| o Formal classes and methods can be `sealed', by using the |
| corresponding argument to setClass or setMethod. New |
| functions isSealedClass() and isSealedMethod() test sealing. |
| |
| o packages can now be loaded with version numbers. This allows |
| for multiple versions of files to be installed (and potentially |
| loaded). Some serious testing will be going on, but it should |
| have no effect unless specifically asked for. |
| |
| |
| INSTALLATION CHANGES |
| |
| o TITLE files in packages are no longer used, the Title field |
| in the DESCRIPTION file being preferred. TITLE files will be |
| ignored in both installed packages and source packages. |
| |
| o When searching for a Fortran 77 compiler, configure by default |
| now also looks for Fujitsu's frt and Compaq's fort, but no |
| longer for cf77 and cft77. |
| |
| o Configure checks that mixed C/Fortran code can be run before |
| checking compatibility on ints and doubles: the latter test |
| was sometimes failing because the Fortran libraries were not |
| found. |
| |
| o PCRE and bzip2 are built from versions in the R sources if the |
| appropriate library is not found. |
| |
| o New configure option --with-lapack to allow high-performance |
| LAPACK libraries to be used: a generic LAPACK library will be |
| used if found. This option is not the default. |
| |
| o New configure options --with-libpng, --with-jpeglib, --with-zlib, |
| --with-bzlib and --with-pcre, principally to allow these |
| libraries to be avoided if they are unsuitable. |
| |
| o If the precious variable R_BROWSER is set at configure time |
| it overrides the automatic selection of the default browser. |
| It should be set to the full path unless the browser appears |
| at different locations on different client machines. |
| |
| o Perl requirements are down again to 5.004 or newer. |
| |
| o Autoconf 2.57 or later is required to build the configure |
| script. |
| |
| o Configure provides a more comprehensive summary of its results. |
| |
| o Index generation now happens when installing source packages |
| using R code in package tools. An existing 'INDEX' file is used |
| as is; otherwise, it is automatically generated from the \name |
| and \title entries in the Rd files. Data, demo and vignette |
| indices are computed from all available files of the respective |
| kind, and the corresponding index information (in the Rd files, |
| the 'demo/00Index' file, and the \VignetteIndexEntry{} entries, |
| respectively). These index files, as well as the package Rd |
| contents data base, are serialized as R objects in the 'Meta' |
| subdirectory of the top-level package directory, allowing for |
| faster and more reliable index-based computations (e.g., in |
| help.search()). For vignettes an HTML index is generated |
| and linked into the HTML help system. |
| |
| o The Rd contents data base is now computed when installing source |
| packages using R code in package tools. The information is |
| represented as a data frame without collapsing the aliases and |
| keywords, and serialized as an R object. (The 'CONTENTS' file |
| in Debian Control Format is still written, as it is used by the |
| HTML search engine.) |
| |
| o A NAMESPACE file in root directory of a source package is copied |
| to the root of the package installation directory. Attempting to |
| install a package with a NAMESPACE file using --save signals an |
| error; this is a temporary measure. |
| |
| o The defaults for configure for Darwin systems is |
| --with-blas='-framework vecLib' --with-lapack --with-aqua |
| that by default builds R as a framework and installs it in |
| /Library/Frameworks as R.framework. Then, make install just |
| installs the R.framework in /Library/Frameworks unless specified |
| at configure time using the -enable-R-framework=[DIR] or using |
| the --prefix flag at installation time. |
| |
| DEPRECATED & DEFUNCT |
| |
| o The assignment operator `_' will be removed in the next |
| release and users are now warned on every usage: you may even see |
| multiple warnings for each usage. |
| |
| If environment variable R_NO_UNDERLINE is set to anything of |
| positive length then use of `_' becomes a syntax error. |
| |
| o machine(), Machine() and Platform() are defunct. |
| |
| o restart() is defunct. Use try(), as has long been recommended. |
| |
| o The deprecated arguments `pkg' and `lib' of system.file() have |
| been removed. |
| |
| o printNoClass() {methods} is deprecated (and moved to base, |
| since it was a copy of a base function). |
| |
| o Primitives dataClass() and objWithClass() have been replaced |
| by class() and class<-(); they were internal support functions |
| for use by package methods. |
| |
| o The use of SIGUSR2 to quit a running R process under Unix is |
| deprecated, the signal may need to be reclaimed for other |
| purposes. |
| |
| |
| UTILITIES |
| |
| o R CMD check more compactly displays the tests of DESCRIPTION |
| meta-information. It now reports demos and vignettes without |
| available index information. Unless installation tests are |
| skipped, checking is aborted if the package dependencies cannot |
| be resolved at run time. Rd files are now also explicitly |
| checked for empty \name and \title entries. The examples are |
| always run with T and F redefined to give an error if used |
| instead of TRUE and FALSE. |
| |
| o The Perl code to build help now removes an existing example |
| file if there are no examples in the current help file. |
| |
| o R CMD Rdindex is now deprecated in favor of function Rdindex() |
| in package tools. |
| |
| o Sweave() now encloses the Sinput and Soutput environments of |
| each chunk in an Schunk environment. This allows to fix some |
| vertical spacing problems when using the latex class slides. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o A full double-precision LAPACK shared library is made |
| available as -lRlapack. To use this include |
| $(LAPACK_LIBS) $(BLAS_LIBS) in PKG_LIBS. |
| |
| o Header file R_ext/Lapack.h added. C declarations of BLAS |
| routines moved to R_ext/BLAS.h and included in R_ext/Applic.h |
| and R_ext/Linpack.h for backward compatibility. |
| |
| o R will automatically call initialization and unload routines, if |
| present, in shared libraries/DLLs during dyn.load() and |
| dyn.unload() calls. The routines are named R_init_<dll name> |
| and R_unload_<dll name>, respectively. See the Writing R |
| Extensions Manual for more information. |
| |
| o Routines exported directly from the R executable for use with |
| .C(), .Call(), .Fortran() and .External() are now accessed via |
| the registration mechanism (optionally) used by packages. The |
| ROUTINES file (in src/appl/) and associated scripts to |
| generate FFTab.h and FFDecl.h are no longer used. |
| |
| o Entry point Rf_append is no longer in the installed headers |
| (but is still available). It is apparently unused. |
| |
| o Many conflicts between other headers and R's can be avoided by |
| defining STRICT_R_HEADERS and/or R_NO_REMAP -- see `Writing R |
| Extensions' for details. |
| |
| o New entry point R_GetX11Image and formerly undocumented |
| ptr_R_GetX11Image are in new header R_ext/GetX11Image. These |
| are used by package tkrplot. |
| |
| |
| BUG FIXES |
| |
| o The redefinition of the internal do_dataentry by both the aqua and X11 |
| modules, casued a bus error when launching R without the --gui=aqua option |
| under X11 using a version of R built to use the aqua module. This has |
| now been fixed. (PR#6438) |
| |
| o Sys.sleep() on Unix was having trouble with waits of less than 0.5s |
| |
| o The fix to PR#2396 broke read.table() on files with CR line |
| endings. (PR#2469) Separate problem with this on Carbon Mac OS |
| build fixed as well. |
| |
| o Converting Sweave files to noweb syntax using SweaveSyntConv() |
| was broken. |
| |
| o Printing numbers near the minimum could get the number of |
| significant figures wrong due to underflow: for example 4e-308 |
| might print as 4.00000e-308. (Seen on some Windows builds, |
| and also on numbers around 1e-317 on Linux.) |
| |
| o wilcox.test() could give integer overflow warnings on very long |
| vectors. Also added tests for numeric inputs, as per the help |
| page. (PR#2453) |
| |
| o Printing unquoted character vectors containing escape |
| characters was computing the wrong length and hence |
| misaligning names. This was due to a bug in Rstrlen which |
| might have had other effects. |
| |
| o if(logical(0)) and while(logical(0)) now report zero length, |
| not `missing value where logical is needed'. |
| |
| o The gaussian() and inverse.gaussian() families were documented |
| to allow only one link, which has not been true in R for at |
| least four years. |
| |
| o prmatrix() forced conversion to character if `na.print' was |
| used, and that conversion neither respected `digits' nor |
| `quote'. |
| |
| o Rprof() might give misleading results for too small values of |
| `interval' and in practice the default 20ms was about as small |
| as is advisable on Linux. Now the interval is forced to be at |
| least one clock tick. |
| |
| o summary.data.frame() was not giving interpretable results when |
| the data frame contained a data frame as a column. (PR#1891) |
| |
| o delete.response() might re-order the rhs terms so prediction |
| might fail or even give incorrect results. (PR#2206) |
| |
| o StructTS() now accepts numeric time series of integer storage mode. |
| |
| o all(), any() now handle NAs as documented. |
| |
| o Subsetting arrays to a result with 0 dimension(s) failed if |
| the array had dimnames. (PR#2507) |
| |
| o If the call to data.frame() included 0-row arguments, it tried |
| to replicate them to the maximum number of rows, and failed if |
| this was 1 or more. |
| |
| o replicate() now understands data frames to which na.omit() has |
| been applied. |
| |
| o is.ts() was too liberal: a time series must have at least one point. |
| |
| o methods() was sorting by package, not by name. |
| |
| o symbols(thermometers=) was often giving a spurious warning about |
| the range. |
| |
| o tcltk was using deprecated internals of the Tcl library when |
| accessing error messages. Not likely to be a user-visible |
| change. |
| |
| o The automatic search for BLAS libs now tries Sun's libsunperf |
| the way the latest versions require. (PR#2530) |
| |
| o str(array(1)) now does show the array. |
| str(Surv(...)) now works again. |
| |
| o step(), add1.default() and drop1.default() now work somewhat |
| better if called from a function. |
| |
| o page() was searching from the wrong environment, and so |
| searching base before the workspace. |
| |
| o crossprod(Z) for complex Z was returning nonsense. |
| |
| o La.chol2inv() gave incorrect results unless the matrix was square. |
| |
| o When the POSIXt date functions were required to guess DST, |
| they sometimes guessed correctly that DST was in force but |
| converted a POSIXlt time as if standard time was given. |
| |
| o c/rbind were not handling zero col/row matrices correctly. |
| (PR#2541 was one symptom.) |
| |
| o approx() and approxfun() now work with 1 knot if |
| method = "constant". stepfun(), ecdf() and plot.stepfun() do so |
| as well. |
| |
| o AIC.lm/default was failing if multiple objects and k were |
| specified. (PR#2518) |
| |
| o removeMethods{methods} was broken. (PR#2519) |
| |
| o summary.glm() had two `aic' components in the returned object. |
| |
| o autoload() was returning the value of its last command, a |
| promise, even though it was documented to have no value. |
| As a result some packages (e.g. nlme) were loading packages |
| they meant to autoload. |
| |
| o Fixes to methods and classes: |
| - show() is consistent with using setOldClass for S3 classes. |
| - several problems with the coerce and replace methods |
| generated by setIs have been fixed. |
| - more thorough tests & informative messages for invalid |
| `def' arguments to setGeneric |
| - setGeneric will now create the generic function even when |
| a generic of the same name already exists (it does issue |
| a warning). |
| |
| o unz() connections could no longer be opened. (PR#2579) |
| |
| o unique(ordered factor) returned an unordered factor. (PR#2591) |
| |
| o x[] <- value coerced x to the mode of value if and only if x |
| had length 0! (Should only happen if x is null: PR#2590) |
| |
| o lm() mislabelled the cols of the qr decomposition. (cause of PR#2586) |
| |
| o data() looks for file extensions in an order prescribed in the |
| help file: previously whether foo.R or foo.csv was used was |
| locale-dependent. |
| |
| o sys.function() now returns the actual function being evaluated in |
| the specified frame rather than one inferred from the call. |
| |
| o match.call() now uses the definition of the actual function being |
| evaluated rather than one inferred from the call. |
| |
| o abbreviate(*, dot = TRUE) now only adds a "." where abbreviations |
| did happen. |
| |
| o Changing timezones in the POSIXt functions was not working on |
| some Linux systems, and this has been corrected. |
| |
| o ks.test() in package ctest had numerical problems in the lower |
| tail of the asymptotic distribution (PR#2571). |
| |
| o Sweave() now handles empty chunks at the end of files correctly. |
| |
| o [<-() lost the object bit if coercion was involved. |
| |
| o package::object wasn't being deparsed properly. |
| |
| o seq.POSIXt() with `by' an object of class "difftime" ignored |
| the units. |
| |
| o rank(c("B", NA)) no longer returns character. |
| |
| o reference to by() added in ?tapply |
| |
| o ?lm describes what happens with matrix response |
| |
| o The X11 device has improved event handling. In particular it |
| used to often miss the last of a series of resize events. |
| |
| o lm.influence() and related functions now work again for the |
| multivariate case and when there are zero weights. |
| |
| o format( <character> ) now always keeps names and dimnames. |
| |
| o table(factor(c(2,NA), exclude=NULL)) prints better now. |
| |
| o predict(foo, type = "terms") and hence |
| residuals(foo, type = "partial") now work for lm and glm objects |
| with weights zero. Further, model.matrix() is now only called once. |
| |
| o R CMD config now works correctly when called from a Makefile |
| using GNU make. |
| |
| o The data.frame method for rbind() was |
| - converting character columns to factors, |
| - converting ordered factor columns to unordered factors, |
| - failing to append correctly a factor to a character column |
| and vice versa. |
| |
| o as.hclust.twins() now does provide proper `labels', `method' and |
| `call' components. |
| |
| o cycle() sometimes failed on a time series which started at a cycle |
| other than 1. |
| |
| o read.dcf() read incorrectly files which did not end in a new line. |
| |
| o read.socket() dropped certain non-alphanumeric characters. (PR#2639) |
| |
| o termplot() handles missing data better (PR#2687, |
| <Mark.Bravington@csiro.au>) |
| |
| o Corrected MacRoman encoding for Icircumflex etc. |
| |
| |
| |
| ************************************************** |
| * * |
| * 1.6 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.6.2 |
| |
| |
| BUG FIXES |
| |
| o plot.stepfun() now obeys a `ylim=.' specification. |
| |
| o removeClass() does a better job of removing inheritance |
| information. |
| |
| o setIs() will not allow mismatched representations between two |
| classes (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 graphics |
| functions. 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 the |
| matrices 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 from |
| classed 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 if |
| rounding pushed x over a positive power of 10. (PR#2299) |
| |
| o attr(x, foo) used partial matching for `foo' (even though not |
| documented to do so), and failed to find `foo' if there were |
| two or more partial matches before the exact match in the list |
| of attributes. |
| |
| o Rdconv now creates direct HTML hyperlinks when linking to |
| documentation in the same package. The code now ensures that |
| links 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 which |
| does not contain C-style character strings, warnings (usually |
| many) are now given. |
| |
| o Building libR.so with the zlib in the R sources was not |
| finding the local zlib headers. |
| |
| o system(intern=TRUE) has an undocumented line length limit of |
| 119 chars both on Unix and Windows. The limit is now 8096 and |
| documented. On Unix (only) every 120th character used to be |
| discarded. |
| |
| o plot.POSIX[cl]t were not passing graphics parameters on to |
| axis.POSIXct. |
| |
| o On some HP-UX systems, installed scripts were not executable |
| when using the BSD-compatible install system program found by |
| configure. We now always use install-sh on HP-UX. (PR#2091) |
| |
| o c() was converting NA names to "NA": now proper NA strings are |
| used wherever possible. (PR#2358) |
| |
| o Checks in the C code prevent possible memory faults when |
| standardGeneric is called invalidly. |
| |
| o Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required by |
| the .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 when |
| one component was NULL, affecting pmax() and pmin() when the |
| first argument was a matrix. (root cause of PR#2357) |
| |
| o The pdf() device now initialises graphical parameters |
| properly. (PR#2281) |
| |
| o Checks in the C code prevent possible memory faults when |
| standardGeneric is called invalidly. |
| |
| o Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required by |
| the .Call interface to generate arbitrary objects. |
| |
| o Problem that prevented package tcltk from working with Tcl/Tk |
| 8.4 (crash on initialization) resolved. (Notice that binaries |
| may still require an older Tcl/Tk, for example on Windows). |
| |
| o type.convert() was not getting the levels right if passed a |
| character vector containing <NA>s, and `na.strings' did not |
| contain "NA". This affected read.table(). |
| |
| o Internal match function did not check for nor handle 0-length |
| vectors. (The R function match() did.) This could cause |
| type.convert() to segfault. |
| |
| o The line length limit in output text connections has been |
| raised to 8095 chars. |
| |
| o Sweave now uses anonymous file rather than text connections |
| to avoid the limits of the latter (see previous item). |
| |
| o parsing did not work on connections when pushback was used (as |
| it 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 caused |
| conversion to/from POSIXct times prior to 1970-01-01 to be |
| inconsistent. On such platforms this is a run-time test to |
| allow 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.1 |
| |
| |
| NEW FEATURES |
| |
| o Added a few "trivial and obviously missing" functions to tcltk: |
| tkchooseDirectory, tkpopup, tkdialog, tkread |
| |
| o barplot() has a new argument `axis.lty', which if set to 1 |
| allows the pre-1.6.0 behaviour of plotting the axis and tick |
| marks for the categorical axis. (This was apparently not |
| intentional, but axis() used to ignore lty=0.) |
| The argument `border' is no longer ".NotYetUsed". |
| |
| |
| BUG FIXES |
| |
| o 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 results |
| |
| o summaryRprof() was counting nested calls to the same function |
| twice. |
| |
| o Printing of objects of mode "expression" did strange things if |
| there 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 not |
| writable. (PR#2133) |
| |
| o Sweave.sty was not installed to $R_HOME/share/texmf when |
| builddir != srcdir. On Windows backslashes in latex paths have |
| to be replaced by slashes. |
| |
| o A memory leak in deparsing was introduced when eliminating |
| static 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 that |
| the 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 was |
| used under Unix-alikes. |
| |
| o sys.save.image() now closes all connections so it will work even |
| if the connection list has become full. |
| |
| o loess() had an unstated limit of four predictors: this is now |
| documented and enforced. |
| |
| o ${R_HOME}/etc/Renviron.site is now not read if R_ENVIRON is |
| set, as documented. Previously it was read unless R_ENVIRON |
| pointed to an actual file. |
| |
| o Startup.Rd described the processing under Unix-alikes but |
| incorrectly implied it happened that way on the Windows and |
| Mac 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 their |
| input and ignored elements after the first. This affected |
| undoc {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 now |
| supported by a quote from Cleveland (1985). |
| |
| o The vsnprintf() functions supplied for systems that don't |
| supply 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#1032 |
| and D.Brahm's mails). |
| |
| o factor.scope() was giving an error rather than a reasonable |
| default in some cases when it was called incorrectly (e.g. via |
| incorrect formula in add1()). |
| |
| |
| BUILD ISSUES |
| |
| o Toplevel Makefile was missing dependency of "docs" on "R" (causing |
| parallel makes to go wrong) |
| |
| o When building with recommended packages those were installed |
| into the first path in R_LIBS, if the environment variable was |
| present. |
| |
| |
| |
| CHANGES IN R VERSION 1.6.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o The default colour palette now has "grey" instead of "white" |
| in location 8. See palette(). |
| |
| o grid(nx) behaves differently (but the same as in R versions <= 0.64). |
| |
| |
| NEW FEATURES |
| |
| o New operator :: in the grammar, for name spaces. |
| |
| o New faster rowsum(), also works on data frames. |
| |
| o grep(), (g)sub() and regexpr() have a new argument `perl' |
| which if TRUE uses Perl-style regexps from PCRE (if installed). |
| New capabilities option "PCRE" to say if PCRE is available. |
| |
| o Preparations for name space support: |
| |
| - Functions in the base package are now defined in a name space. |
| As a temporary measure, you can disable this by defining the |
| environment variable R_NO_BASE_NAMESPACE. |
| |
| - UseMethod dispatching now searches for methods in the |
| environment of the caller of the generic function rather |
| than the environment where the generic is defined. |
| |
| o The objects created in the methods package to represent |
| classes, generic functions, method definitions, and |
| inheritance relations now themselves belong to true classes. In |
| particular, the "classRepresentation" objects follow the description |
| in "Programming with Data" (section 7.6). |
| |
| o Other additions and changes to the methods package: |
| |
| - The function setOldClass() has been added, following the |
| description on page 450 of "Programming with Data". Use it |
| if old-style classes are to be supplied in signatures for |
| setMethod, particularly if the old-style classes have |
| inheritance. Many of the old-style classes in the base |
| package should be pre-specified; try getClass("mlm"), e.g. |
| |
| - The setGeneric() function applies some heuristics to warn |
| about possibly erroneous generic function definitions. |
| (Before, obscure bugs could result.) |
| |
| - The function promptMethods() has been revised to work better |
| and to provide aliases for individual methods. |
| |
| - The behavior of the as() function has been generalized, in |
| particular with a strict= argument, the general goal being |
| to let simple extensions of classes pass through in method |
| dispatch and related computations without altering the |
| objects. More to make method behavior more "natural" than |
| for direct use. |
| |
| - Some inconsistencies following detach("package:methods") |
| have been removed, so it _should_ be possible to |
| detach/re-attach the methods package. |
| |
| o New methods ([[, print, str) and extended plot() method |
| (incl. logical `horiz') for "dendrogram" class. |
| |
| o sprintf() now checks the agreement between formats and object |
| types, and handles special values (NA, Inf, ...) correctly. |
| |
| o chol() now uses a tolerance for non-positive-definiteness and |
| so should give more consistent results across platforms. |
| |
| o New function agrep() for approximate (fuzzy) string matching. |
| |
| o help.search() can now use both approximate (fuzzy) and regular |
| expression matching. By default, if the pattern to be matched |
| consists of only alphanumeric characters, whitespace or a dash, |
| approximate matching is used. |
| |
| o axis() has three new optional arguments `col', `lty', and `lwd' |
| all for drawing the axis line and tick marks. |
| |
| o Function vcov() (formerly in MASS), a generic function to |
| return the variance-covariance matrix of the parameter |
| estimates of a fitted model. |
| |
| o duplicated() and unique() have methods for matrices and arrays |
| (based on ideas from Jens Oehlschlaegel). |
| |
| o Internally memory sizes and counts of cons cells are now stored |
| in unsigned longs. This allows memory limits to be set and |
| objects created in the range 2-4Gb on 32-bit platforms, and |
| allows 64-bit platforms to use much larger amounts of memory. |
| |
| o Command-line flags to set memory can now use the suffix `G' |
| for gigabytes. The setting of maximum vsize is now only |
| limited by the platform's address space. |
| |
| o All warning and error messages are truncated to a length set |
| by options(warning.length=), defaulting to 1000. (Previously |
| most (but not quite all) were truncated at 8192 characters.) |
| |
| o [dpqr]gamma() check for shape parameter > 0. |
| |
| o as.POSIX[cl]t can now convert logical NAs. |
| |
| o All installed packages (even those shipped with R) are |
| given a `Built' field in the DESCRIPTION file. |
| |
| o as.data.frame() now coerces logical matrices into logical |
| columns (rather than factors). |
| |
| o [[<-.data.frame no longer coerces character replacement values |
| to factor. This is consistent with using $ to replace and |
| with S4. |
| |
| o library() attempts to detect improperly installed packages, so |
| as from this version an installed package must have a |
| DESCRIPTION file and that file must have been stamped with a |
| `Built:' line (which was introduced in 1.2.0). Under |
| Unix-alikes, the platform is checked against that used for |
| installation. |
| |
| o print.factor() has new arguments `max.levels' (with a smart default) |
| and `width'. print.ordered() is no longer needed. |
| |
| o RNGkind() has an additional option for normal random generators: |
| "Inversion". |
| |
| o data.frame() recycles factors and "AsIs" objects as well as |
| atomic vectors. |
| |
| o predict.lm() warns if `newdata' is supplied and the fit was |
| rank-deficient, as this can be misleading. |
| |
| o rect() accepts additional graphics parameters through a ... |
| argument (in the same way as polygon). |
| |
| o strwidth/strheight() now coerce their first argument in exactly |
| the same way text() does, so a wider range of inputs is allowed. |
| |
| o prompt()'s default and data.frame methods have a new 3rd argument |
| `name' allowing them to used more easily in scripts and loops. |
| |
| o rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M], |
| particularly in {0:255}, efficiently and non-error-prone. |
| |
| o summaryRprof() provides the functionality of R CMD Rprof in R |
| code, though more slowly. |
| |
| o stop() accepts multiple arguments (which are concatenated) |
| just as warning() does. |
| |
| o scan() now throws an error with incorrect logical input (which |
| was previously taken as FALSE). |
| |
| o pdf() now uses PDF not R code for clipping, which ensures that |
| partially visible text strings are (partially) shown. |
| |
| o Each R session uses a per-session temporary directory which |
| is removed at normal termination. The directory name is given |
| by the tempdir() function, and filenames returned by |
| tempfile() will be within that directory. |
| |
| o help.start() on Unix now uses a .R subdirectory of the |
| per-session temporary directory and not ~/.R. A side effect |
| is that ~/.R is now never deleted by R. |
| |
| This now uses the remote control mechanism only if the X |
| display is local to the R process (as otherwise it might use a |
| browser running on an arbitrary machine). |
| |
| o *Very* experimental browseEnv() for browsing objects in an |
| environment. |
| |
| o cbind/rbind() used to ignore all zero-length vectors, an |
| undocumented quirk for S-compatibility. This caused problems |
| when combining zero-extent matrices and zero-length vectors, and |
| now zero-length vectors are ignored unless the result would |
| have zero rows/columns. |
| |
| o read.table(stdin()) will now work. |
| |
| o plot.spec(x) now also works for other x than AR and Pgram results. |
| |
| o New functions La.chol() and La.chol2inv() for Cholesky |
| decomposition and inverse of positive definite matrices using |
| Lapack. |
| |
| o Changes to the tcltk package |
| |
| - on Unix systems, the Tcl event loop has been integrated with |
| R's own (so that tkwait.variable() no longer halts updates of |
| plot windows). |
| |
| - also on Unix, stubs have been created to divert R's input |
| and output routines to go via Tcl commands. (Nothing |
| uses this at present, but packages might be developed to |
| take advantage of it.) |
| |
| - return value from Tcl commands is no longer invisible. A new |
| print method, print.tclObj(), has been introduced. |
| |
| - Tcl variables created by tclVar() are now explicitly put into |
| Tcl's global namespace, removing potential scoping problems. |
| |
| - The tcltk dynamic library now loads with local=FALSE since |
| the default had trouble when loading Tcl extensions |
| (e.g. Tix) |
| |
| - The tkpager() function had not been updated for the return |
| value change from 1.5.0 |
| |
| o The bmp(), jpeg() and png() devices can produce multiple |
| bitmap files, one for each page. The default filenames have been |
| changed to include a sequence number. |
| |
| o New function axTicks() returning tick mark locations like axis(). |
| |
| o grid() has a more sensible default behavior. Tick axis alignment |
| only happens when no numbers of grid cells are specified. New |
| arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid. |
| |
| o installed.packages() has a new argument `priority'. |
| |
| o termplot() uses factor levels rather than 1,2,3... for x-axis. |
| |
| o Workaround for optimization bugs on gcc 3.1/2 on 32-bit Solaris. |
| |
| o The trace() function has been robustified and a new function |
| tracingState() added to turn tracing temporarily on and off. |
| |
| o New cophenetic() in "mva" as utility for hierarchical clustering. |
| |
| o p.adjust() has two new methods, 'Hommel' and 'FDR', contributed |
| by Gordon Smyth <smyth@wehi.edu.au>. |
| |
| o stars() now has add and plot arguments. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o The assignment operator `_' is deprecated: a warning is given |
| once per R session. |
| |
| o machine() is deprecated in favour of .Platform$OS.type. |
| Machine() and Platform() are deprecated in favour of .Machine |
| and .Platform. |
| |
| o arima0.diag() (package ts) is defunct. |
| |
| o piechart() is defunct. |
| |
| o print.ordered() has been removed, so print.factor() is used. |
| |
| o The global internal variables .Dyn.libs and .lib.loc are |
| removed in favor of the internal functions .dynLibs() and |
| .libPaths(). |
| |
| o restart() is deprecated in preparation for proper exception |
| handling. Use try(), as has long been recommended. |
| |
| |
| DOCUMENTATION CHANGES |
| |
| o New demo(persp) containing some of the former example(persp) ones |
| and more. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o Rversion.h is no longer automatically included by R.h. |
| Include it explicitly if you need it. |
| |
| o New entry point R_tmpnam in Utils.h. |
| |
| o The Unix event loop interface has been changed to facilitate |
| integration with other loops. R_checkActivity and |
| R_runHandlers should eventually replace getSelectedHandler. |
| |
| |
| INSTALLATION CHANGES |
| |
| o Perl 5.005 or newer is now required. |
| |
| o R CMD INSTALL is now guaranteed to sort the R source files in |
| ASCII order. |
| |
| |
| UTILITIES |
| |
| o R CMD check now tests for mis-use on an installed or binary |
| package, and sets 'T' and 'F' to 'NULL' when running the |
| examples. |
| |
| o New function SweaveSyntConv() converts between Sweave file |
| syntaxes. RweaveLatex() now gets its prompt from options() and |
| uses the text width as linebreak cutoff for deparsing input |
| statements. |
| |
| |
| BUG FIXES |
| |
| o axis() was not respecting par("mgp")[3] by default. |
| (PR#916) |
| |
| o tcltk back-compatibility fix for tcl8.0 |
| |
| o hist.POSIXct(*, breaks) now works for `breaks = #{breaks}' and |
| when `x' has NAs; the latter applies to cut.POSIXct() as well. |
| |
| o The internal download.file() methods were setting the proxy |
| port to 0 unless it was specified. |
| |
| o poly() did not work for >=3 column matrices. |
| |
| o cut.default() was not handling infinite values with infinite |
| breaks. (PR#1694) |
| |
| o ks.test() could fail due to integer overflow if n.x and n.y |
| were both large. |
| |
| o all.equal(3., 3:3) wasn't TRUE when the methods package was |
| present. |
| |
| o read.table() could remap non-syntactic names to duplicates, |
| and did not check for duplicated names. |
| |
| o ls.str(envir = environment(F)) now works (when F is a function). |
| |
| o pie() now has a `border' (and 'lty') argument which allows empty |
| slice borders and makes pie() useable for hundreds of slices. |
| |
| o all.equal.character() now works correctly also when NAs don't |
| match (PR#1767). |
| |
| o all.equal.numeric() now gives character {instead of list} when |
| lengths don't match. |
| |
| o read.dcf() had a memory leak. |
| |
| o Setting "tcl = a" in a highlevel graphic function worked almost |
| as if par(tcl = a) was called (i.e. was persistent). Further, |
| after par(tcl= <.>), highlevel graphic setting of tcl didn't work |
| anymore. "tck" has now S's default of -0.01 (when tcl=NA). |
| |
| o data() was not checking if ./data was a directory before |
| warning. |
| |
| o Assignment beyond the end of character strings was filling |
| with "", whereas changing the length extended with NA_STRING. |
| Now NA_STRING is used for both. |
| |
| o boxplot()s with logarithmic scale in "width-direction" now have |
| proper widths, i.e. typically constant. |
| |
| o Using GNU readline in asynchronous event callbacks (e.g. TclTk |
| or Gtk) works correctly, i.e. doesn't cause readline to abort |
| the process. |
| |
| o Using Q to exit a browser invoked at the top-level could lead to |
| the browser being invoked on all future top-level loops (PR#1721) |
| |
| o step(fit, direction="both") now uses both directions even if |
| no scope is supplied. |
| |
| o strwidth(), strheight() now give 0 on NA strings (as they |
| are no longer plotted). (PR#1739) |
| |
| o mtext(), persp(), plot.hclust() and title() no longer plot NA |
| character strings. |
| |
| o pdf() has been protected against the user who specified |
| non-existent fonts. (PR#1748) |
| |
| o dlnorm() returns zero for negative x argument. (PR#1781) |
| |
| o Printing 0 in octmode gave "" not "0". (PR#1759) |
| |
| o anova.glm() was ignoring a `dispersion' argument if given |
| multiple objects. (PR#1807) |
| |
| o model.matrix() with a `rhs ~ .' formula included columns with |
| duplicated names in the data frame, which caused subsequent |
| confusion (e.g. in prediction from the object). |
| |
| model.matrix() was sometimes incorrectly determining the first |
| factor in a formula without an intercept. |
| |
| o termplot() now needs data= argument more rarely. (PR#828) |
| |
| o abline() on log scale doesn't draw -ve points. (PR#1243) |
| |
| o The Java search engine now works within Mozilla 1.0 and |
| Netscape 6.2.x / 7.0pr1. |
| |
| o unsplit() failed if f was a list of factors. (PR#1843) |
| |
| o The methods package generic version of primitives is now "sealed" |
| and cannot be redefined (it was always a bad idea to do so). |
| |
| o quantile() gave -Inf not NaN in some examples. (Related to PR#1852) |
| |
| o read.table() read too far in checking the file structure if |
| 0 < nrows < 5 and more rows existed on the file. (PR1809) |
| |
| o loess() was not checking for too small a span (so no points |
| were included in the smoothing window). |
| |
| o match() was assuming that there was only one possible bit |
| pattern for a numeric NA, so some matches failed on Solaris |
| under some compiler options. |
| |
| o identical() no longer thinks NaN and as.double(NA) are identical. |
| |
| o pipe() can open in a binary mode even on Linux (where popen |
| cannot). |
| |
| o zero-column matrices were not being printed at all, not even |
| the row names. |
| |
| o polygon()'s `border' argument was incorrectly documented: in |
| particular `border = 0' plots in background colour. |
| |
| o delete.response() was losing the attribute set for safe |
| prediction. (PR#1840) |
| |
| o poly() was checking the degree against the number of points |
| even when predicting. |
| |
| o Comparison of a data frame and list failed due to typo. (PR#1889) |
| |
| o dput() and dump() attempt to check if writing succeeded. (PR#1884) |
| |
| o rep(1:2, 0) and hence array(1:2, 0) fail no longer. |
| |
| o apply(matrix("", 3, 0), 2, length) now works. |
| |
| o order(na.last = NA, decreasing = TRUE) now sorts in decreasing |
| order. (PR#1906) |
| |
| o order(na.last=NA) failed if all args were of length 1 or all |
| were NA. (PR#1913, 1981) |
| |
| o source() would crash if the `keep.source = TRUE' and the input |
| contained a function with a line longer than 1024 chars. (PR#1900) |
| |
| The limits on nesting of functions and on total function size |
| when the source is kept are now enforced. As (incorrectly) |
| the source was always kept, this meant functions longer than |
| 128Kb could crash R, even in packages. |
| |
| o lqs() and cov.rob() check that the quantile argument does not |
| exceed n-1. |
| |
| o grid() now also works with log coordinates active. |
| |
| o plot.table(tab, xlab="X", ylab="Y") now works as expected. |
| |
| o plot.formula(ask=FALSE) now works. (PR#1923) |
| |
| o as.list(<logical>) now works properly. (PR#1926). |
| |
| o The residual SSq printed from an aov() fit with weights is |
| now the weighted SSq. (PR#1930) |
| |
| o aov() could still fail on multistrata models with very long |
| Error formulae. |
| |
| o try() could fail in BATCH use due to use of fflush(stdin). |
| Only seen on Solaris. (PR#1934) |
| |
| o title(main=list("main")) printed garbage, as did similar calls |
| using quote() instead of expression() for plotmath. (PR#1939) |
| |
| o deparse() dropped parentheses in some case where they were |
| needed. (PR#1119, 1737, 1928, at least) |
| |
| o pdf(onefile = FALSE) never incremented the file number beyond |
| two. |
| |
| o On Unix, protect against broken pipes where popen calls succeed |
| even though the command does not exist (and the glibc manual |
| says it should return NULL). (PR#1959) |
| |
| o data.frame() was allowing explicit row.names with missing |
| values, but row names are required to be unique. |
| |
| o as.character(expression) was silently truncating to 60 |
| characters: the help page claimed 500 which is now true. |
| |
| o as.hclust(x) now also works (as identity) for "hclust" objects. |
| |
| o NextMethod didn't work right in Ops. |
| |
| o dotchart() now obeys `xlim ='. |
| |
| o t(x) behaves when x is a (multivariate) time series. (PR#1998) |
| |
| o parse(text=x) no longer parses from stdin if length(x) is zero |
| |
| o binom.test() miscalculated p-value in some extreme cases |
| |
| o get("print.ts")(1) would segfault. It's now just an error. |
| |
| o cbind(NULL) {and similar} gave an error instead of NULL. |
| |
| o the complex version of solve(a,b) now also works if b is a |
| vector |
| |
| |
| CHANGES IN R VERSION 1.5.1 |
| |
| |
| NEW FEATURES |
| |
| o Enhancements to mathematical annotation of plots: |
| |
| - expressions involving dot(<something>) now produce a dot accent |
| above the <something> (initial patch from Ben Bolker). |
| |
| - within an expression, the symbol partialdiff is now converted |
| to a partial differential symbol (greek delta). |
| |
| o smooth.spline() has a new argument `nknots' allowing to set the |
| default number of knots (when `all.knots = FALSE' as per default). |
| |
| |
| BUG FIXES |
| |
| o Rdconv now skips CRs in input files, even on Unix. |
| |
| o readBin() had a (very slow) memory leak if changing size or reading |
| character strings. writeChar() had a memory leak. |
| |
| o polygon() and rect() with lty = "blank" were omitting the fill |
| colour (if present). symbols(circles=, lty="blank") was |
| drawing the border of the disks. |
| |
| o Subsetting non-existent rows in a data frame would produce |
| missing row names, which are not allowed. |
| |
| o On Unix, R_PAPERSIZE was set to '' instead of 'a4' as default on |
| systems without paperconf. |
| |
| o Under GNOME, capabilities() now reports correctly that X11, png |
| and jpeg are available (if they are under X11). |
| |
| o The names of some results of unlist() had the wrong internal |
| length, which confused paste(). Both have been corrected. (PR#1524) |
| |
| o RweaveLatex.Rd had unbalanced braces in section "Supported |
| Options". |
| |
| o merge() with multiple and differently-named match columns |
| failed. (PR#1510) |
| |
| o NAs in right-justified unquoted character matrices were being |
| mis-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 when |
| pivoting does not occur. (PR#1519) |
| |
| o xx[, 1:3] was returning a list if xx had only one row, even |
| though xx[1, 1:3] was a data frame. (PR#1530) |
| |
| o nls() was reporting incorrectly the number of iterations if the |
| maximum was reached. |
| |
| o rbind.data.frame() was coercing logical columns to factors. |
| (PR#1536) |
| |
| o Rprof(NULL) or Rprof("") called when not profiling caused a |
| segfault: now silently ignored. (PR#1471) |
| |
| o On systems (e.g. Windows) using R's own code for expm1, the |
| values were wrong for large negative x, and this affected |
| pweibull(), 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, and |
| smooth.spline(x,*, all.knots = TRUE) used much too much memory |
| when 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" as |
| missing 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 discrete |
| distributions have in order to guard against truncation. |
| |
| o The "=" assignment operator behaved as "<<-" in some constructions |
| with composite left-hand sides. |
| |
| o Added print.AsIs() method to ensure "AsIs" objects are printed |
| by 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 open |
| crashed R. (PR#1605) |
| |
| o read.dcf() was not checking that memory allocation succeeded. |
| |
| o The C function fprec might overflow for > 16 digits, showing |
| up in example(str) on some platforms. |
| |
| o Changes to the methods package: |
| |
| - Nonstandard generic function definitions given to |
| setGeneric now work; these were previously ignored. |
| |
| - Classes that extend matrix, etc. as the data part previously lost |
| their attributes. |
| |
| - There were bugs in distinguishing methods for "missing" from |
| methods for "ANY". |
| |
| - Some coerce methods were not selected correctly when the two classes |
| were related by an "is" relation. |
| |
| - extends() now works correctly if given a class definition rather |
| than a name. |
| |
| - class()<- was leaving in an explicit class attribute for basic data |
| types. |
| |
| - Method signatures including arguments following "..." in the |
| argument 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 on |
| DST. (PR#1543) |
| |
| o tcltk package didn't work with tcl8.0.x. Compatibility code |
| inserted (PR#1640, thanks to Rene' Bertin for helping out with |
| this). |
| |
| o selfStart() {pkg "nls"} now works again when parameter names are |
| not 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 needed |
| to be padded with zeroes, and now the code does that. |
| |
| o old.packages() was assuming a bundle was installed in only one |
| library, and so update.packages() would only update a bundle |
| in the first location in lib.loc. |
| |
| o fisher.test() could miscalculate odds ratio and confidence |
| interval for tables with large entries, due to numerical |
| overflow. |
| |
| o Using lty = "1" (or "10") does no longer produce invalid |
| postscript or pdf. Using "0" in a character lty is currently not |
| implemented 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, probably |
| Mac OS) warning/error messages longer than 8192 chars could |
| crash R. (PR#1651) |
| |
| o Comparisons between objects of mode "call" using "==" now return |
| TRUE if both sides deparse to the same string (as always intended). |
| |
| o HoltWinters() now initializes correctly in the exponential |
| smoothing case, and plot.HoltWinters() allows lty to be set. |
| |
| o fisher.test() crashed due to corruption on some large |
| problems. 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 changes |
| during 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 instead |
| of stop(). |
| |
| o vector("complex",n) doesn't return random garbage anymore. |
| |
| |
| CHANGES IN R VERSION 1.5.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| o XDR support is now guaranteed to be available, so the default |
| save format will always be XDR binary files, and it is safe to |
| distribute data in that format. (We are unaware of any |
| platform that did not support XDR in recent versions of R.) |
| |
| gzfile() is guaranteed to be available, so the preferred |
| method to distribute sizeable data objects is now via |
| save(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 more |
| consistently, and the character string "NA" can be used as a |
| non-missing value. |
| |
| o summary.factor() now uses a stable sort, so the output will |
| change where there are ties in the frequencies. |
| |
| |
| NEW FEATURES |
| |
| o Changes in handling missing character strings: |
| |
| - "NA" is no longer automatically coerced to a missing value |
| for a character string. Use as.character(NA) where a missing |
| value is required, and test via is.na(x) not x == "NA". |
| String "NA" is still converted to missing by scan() and |
| read.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 amongst |
| unquoted 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 more |
| consistently, 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", formally |
| represented as a .Data slot in the class definition, but |
| implemented consistently with informal structures. While the |
| implementation is different, the user-level behavior largely |
| follows the discussion in "Programming with Data". |
| |
| - A "next method" facility has been provided, via the function |
| callNextMethod(). This calls the method that would have been |
| selected 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 called |
| when the function new() is used to create an object from the |
| class. See ?initialize. This is an extension to the API. |
| |
| - The logic of setGeneric() has been clarified, simplifying |
| nonstandard 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 this |
| is now the class of the return value from .Tcl() and tkcmd(). |
| |
| |
| o Changes in package ts: |
| |
| - More emphasis on handling time series with missing values |
| where possible, for example in acf() and in the |
| ARIMA-fitting functions. |
| |
| - New function arima() which will replace arima0() in due |
| course. Meanwhile, arima0() has been enhanced in several |
| ways. Missing values are accepted. Parameter values can |
| be initialized and can held fixed during fitting. There is |
| a new argument `method' giving the option to use |
| conditional-sum-of-squares estimation. |
| |
| - New function arima.sim(). |
| |
| - New datasets AirPassengers, Nile, UKgas and WWWusage, |
| and a expanded version of UKDriverDeaths (as a multiple |
| time 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 compute |
| theoretical quantities for an ARMA process. |
| |
| - New function acf2AR() to compute the AR process with a given |
| autocorrelation function. |
| |
| - New function StructTS() to fit structural time series, and |
| new generic function tsSmooth() for fixed-interval |
| state-space smoothing of such models. |
| |
| - New function monthplot() (contributed by Duncan Murdoch). |
| |
| - New functions decompose() and HoltWinters() (contributed by |
| David Meyer) for classical seasonal decomposition and |
| exponentially-weighted forecasting. |
| |
| |
| o An extensible approach to safe prediction for models with e.g. |
| poly(), bs() or ns() terms, using the new generic function |
| makepredictcall(). Used by most model-fitting functions |
| including lm() and glm(). See ?poly, ?cars and ?ns for |
| examples. |
| |
| o acosh(), asinh(), atanh() are guaranteed to be available. |
| |
| o axis() now omits labels which are NA (but still draws the |
| tick 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 well |
| as from a matrix; it has new arguments `add' (as S) and `x.ret'. |
| |
| o crossprod() handles the case of real matrices with y = x |
| separately (by accepting y = NULL). This gives a small |
| performance gain (suggestion of Jonathan Rougier). |
| |
| o deriv/deriv3() can now handle expressions involving pnorm and |
| dnorm (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 point |
| findInterval, see below}. |
| |
| o formatDL() now also works if both items and descriptions are |
| given 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) and |
| warns if the package was built under a later version of R. |
| |
| o library(help = PKG) now also returns the information about the |
| package PKG. |
| |
| o Added function logb(), same as log() but for S-PLUS |
| compatibility (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 Trellis |
| function for arrays of pie charts. The default fill colours |
| are 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 single |
| vector. |
| |
| o polyroot() now handles coefficient vectors with terminal |
| zeroes (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 determining |
| when 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 good |
| choice 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 for |
| help 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 space |
| when 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 whilst |
| still 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 any |
| NAs several-fold. |
| |
| - sort.list() (and order with just one vector) is several |
| times faster for numeric, integer and logical vectors, and |
| faster for character vectors. |
| |
| o New assignment forms of split(); new function unsplit(). |
| |
| o New sprintf() function for general C like formatting, from |
| Jonathan 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 to |
| summary.princomp itself. |
| |
| o An extended version of the trace() function is available, |
| compatible with the function in S-PLUS. Calls to R functions |
| can be inserted on entry, on exit, and before any |
| subexpressions. Calls to browser() and recover() are useful. |
| See ?trace. |
| |
| o New function TukeyHSD() for multiple comparisons in the results |
| of aov(). (Formerly function Tukey in package Devore5 by |
| Douglas 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 been |
| given an option of using the 2002 revision. See ?RNG for the |
| details: the R usage already protected against the |
| reported `weakness'. |
| |
| o min/max of integer(0) (or NULL) is now Inf/-Inf, not an |
| extreme integer. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o .Alias, reshapeLong(), reshapeWide() are defunct. |
| |
| o arima0.diag() (package ts) is deprecated: use tsdiag() instead. |
| |
| o piechart() is deprecated; renamed to pie(). |
| |
| |
| DOCUMENTATION CHANGES |
| |
| o `Writing R Extensions' now has an example of calling R's |
| random numbers from FORTRAN via C. |
| |
| o R itself and all R manuals now have ISBN numbers, please use |
| them when citing R or one of the manuals. |
| |
| |
| INSTALLATION CHANGES |
| |
| o The configure script used when building R from source under Unix |
| is now generated using Autoconf 2.50 or later, which has the |
| following 'visible' consequences: |
| |
| - By default, configure no longer uses a cache file. Use the |
| command line option '--config-cache' (or '-C') to enable |
| caching. |
| |
| - Key configuration variables such as 'CC' are now *precious*, |
| implying that the variables |
| |
| * no longer need to be exported to the environment and can and |
| should be set as command line arguments; |
| |
| * are kept in the cache even if not specified on the command |
| line, and checked for consistency between two configure runs |
| (provided that caching is used, see above); |
| |
| * are kept during automatic reconfiguration as if having been |
| passed as command line arguments, even if no cache is used. |
| |
| See the variable output section of 'configure --help' for a |
| list of all these variables. |
| |
| o Configure variable 'FC' is deprecated, and options '--with-g77', |
| '--with-f77' and '--with-f2c' are defunct. Use configure |
| variable 'F77' to specify the FORTRAN 77 compiler, and 'F2C' to |
| specify the FORTRAN-to-C compiler and/or that it should be used |
| even if a FORTRAN 77 compiler is available. |
| |
| o Non-standard directories containing libraries are specified |
| using configure variable 'LDFLAGS' (not 'LIBS'). |
| |
| |
| UTILITIES |
| |
| o Sweave(), Stangle() and friends in package tools. Sweave allows |
| mixing LaTeX documentation and R code in a single source file: |
| the R code can be replaced by its output (text, figures) to |
| allow automatic report generation. Sweave files found in |
| package subdir 'inst/doc' are automatically tested by R CMD |
| check and converted to PDF by R CMD build, see the section on |
| package 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 by |
| providing global variables like R_OSTYPE or wrapper functions |
| like R_runR(). |
| |
| o If a directory 'inst/doc' is present in the sources of a |
| package, the HTML index of the installed package has a link to |
| the respective subdirectory. |
| |
| o R CMD check is more stringent: it now also fails on malformed |
| 'Depends' and 'Maintainer' fields in 'DESCRIPTION' files, and on |
| unbalanced braces in Rd files. It now also provides pointers to |
| documentation 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 their |
| computations as objects with suitable print() methods. By |
| default, output is only produced if a problem was found. |
| |
| o New utility R CMD config to get the values of basic R configure |
| variables, or the header and library flags necessary for linking |
| against R. |
| |
| o Rdindex and maketitle.pl require perl 5.005, as Text::Wrap::fill |
| was only introduced at 5.004_05. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o 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 an |
| F77_SUB(interv)(.) to be called from Fortran; this used to be |
| part of predict.smooth.spline's underlying Fortran code. |
| |
| o Substitutes for (v)snprintf will be used if the OS does not |
| supply one, so tests for HAVE_(V)SNPRINTF are no longer needed. |
| |
| o The DUP and NAOK arguments in a .C() call are not passed on |
| to the native routine being invoked. Any code that relied on |
| the old behaviour will need to be modified. |
| |
| o log1p is only provided in Rmath.h if it is not provided by the |
| platform, in which case its name is not remapped, but a |
| back-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 in |
| R_ext/Applic.h and have a more general interface documented in |
| `Writing R Extensions'. |
| |
| o The bessel_? entry points are now suitable to be called |
| repeatedly from code loaded by .C(). (They did not free |
| memory until .C() returned in earlier versions of R.) |
| |
| o Server sockets on non-Windows platforms now set the SO_REUSEADDR |
| socket option. This allows a server to create simultanous |
| connections to several clients. |
| |
| o New quicksort sorting (for numeric no-NA data), accessible from |
| C as R_qsort() etc and from Fortran as qsort4() and qsort3(). |
| |
| o Rinternals.h no longer includes fcntl.h, as this is not an |
| ISO 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 FIXES |
| |
| o The calculation of which axes to label on a persp() plot was |
| incorrect in some cases. |
| |
| o Insufficient information was being recorded in the display list |
| for 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-adjusting |
| i.e,. it was treating adj=0 as adj=c(0, 0). It now treats |
| adj=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 and |
| hence 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="") for |
| consistency 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 of |
| bitmap(type = "pdfwrite") and when converting the output |
| of postscript() to PDF; this has been circumvented by |
| suppressing the %%Orientation comment for non-standard |
| paper 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 with |
| formulae 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 with |
| excessively long Error formula. (PR#1315) |
| |
| o Transparent backgrounds on png() devices on Unix-alikes had |
| been 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 was |
| attached. |
| |
| o match(), unique() and duplicated() were not declaring all NaNs to be |
| equal, yet not always distinguishing NA and NaN. This was |
| very rare except for data imported as binary numbers. |
| |
| o The error handler recover() protects itself against errors in |
| dump.frames and uses a new utility, limitedLabels, to generate |
| names for the dump that don't inadvertently blow the limit on |
| symbol length. (TODO: either fix dump.frames accordingly or |
| remove 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 for |
| intercept-only models, but summary.lm.null() was returning |
| r.squared but not adj.r.squared. Now both are always |
| returned. Neither returned f.statistic, and that is now |
| documented. |
| |
| o Subsetting of matrices of mode list (or other non-atomic |
| modes) was not implemented and gave incorrect results without |
| warning. (PR#1329) |
| Under some circumstances subsetting of a character matrix |
| inserted NA in the wrong place. |
| |
| o abs() was not being treated as member of the Math group |
| generic function, so e.g. its method for data frames was not |
| being used. |
| |
| o set.seed(seed, "default") was not using the `seed' value (only |
| for 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 as |
| Solaris) that returned missing components as 0. Missing |
| days are now detected, but missing years will still |
| be interpreted as 1900 on such platforms. |
| |
| o Inheritance in formal classes (the methods package) works |
| breadth-first as intuition would expect. |
| |
| o The new() function in package `methods' works better (maybe even |
| correctly?) for the various combinations of super-classes and |
| prototypes that can be supplied as unnamed arguments. |
| |
| o Internal code allowed one more connection to be allocated than |
| the table size, leading to segfaults. (PR#1333) |
| |
| o If a user asks to open a connection when it is created and |
| it cannot be opened, the connection is destroyed before returning |
| from 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 find |
| the derivatives table. |
| |
| o The GNOME user interface was over-enthusiastic about setting |
| locale information. Now only LC_CTYPE, LC_COLLATE and LC_TIME |
| are 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 reads |
| with part of the data in the connection buffer. |
| |
| o Allow sockets to be opened in binary mode with both open="ab" and |
| open="a+b". |
| |
| o levels<-.factor() was using incorrectly list values longer than |
| the number of levels (PR#1394), and incorrectly documented |
| that a character value could not be longer than the existing |
| levels. |
| |
| o The pdf() device was running out of objects before the |
| documented 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 relative |
| range 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 default |
| col=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 labels |
| for multiple calendar time series. |
| |
| o Rdconv was not handling nested \describe{} constructs when |
| converting 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 numerically |
| singular 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 and |
| pivoting had occurred (PR#1331). Step-halving to avoid the |
| boundary of feasible values was not working. |
| |
| o Internal representation of logical values was not being |
| treated consistently. (Related to PR#1439) |
| |
| o The c() function sometimes inserted garbage in the name vector |
| for 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 of |
| graphics windows (PR#1451) |
| |
| o The X11 data editor would segfault if closed with window manager |
| controls (PR#1453) |
| |
| o Interrupt of Sys.sleep() on UNIX no longer causes subsequent |
| Sys.sleep() calls to segfault due to infinite recusion. |
| |
| o Eliminated a race condition that could cause segfaults when a SIGINT |
| was 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 complex |
| inputs. (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.1 |
| |
| |
| BUG FIXES |
| |
| o scan(multi.line = FALSE) now always gives an immediate error |
| message 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 used |
| with 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 would |
| evaluate the requested test, but not display the result. |
| |
| o stars(scale = TRUE) (the default) now works as documented (and |
| as S does). Previously it only scaled the maximum to 1. (PR#1230) |
| |
| o d0 <- data.frame(a = 0); data.matrix(d0[0, 0]) and |
| data.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 was |
| used 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 the |
| documentation. |
| |
| o setMethod() allows "..." to be one of the arguments omitted in |
| the method definition (but so far no check for ... being missing) |
| |
| o Allow round() to work again on very large numbers (introduced |
| in 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) fills |
| rather than background (as used in 1.3.1 and earlier). Now |
| background is used, but be aware that as from 1.4.0 this may |
| be transparent. |
| |
| o La.eigen(*, only.values=TRUE) does not segfault anymore in one |
| branch (PR#1262). |
| |
| o cut() now produces correct default labels even when |
| include.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 always |
| take account of changes to/from daylight savings time: this |
| was not working on some platforms. |
| |
| o glm.fit.null() now accepts all the arguments of glm.fit() (it |
| could be called from glm.fit with arguments it did not |
| accept), and is now documented. |
| |
| o cov.wt(cbind(1), cor = TRUE) now works. |
| |
| o predict(glm.object, se.fit = TRUE) was failing if the fit |
| involved 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 on |
| the 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 forcing |
| promises 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 by |
| Rdindex (PR#1274). |
| |
| |
| CHANGES IN R VERSION 1.4.0 |
| |
| |
| USER-VISIBLE CHANGES |
| |
| [This is a new section to highlight changes in behaviour, which |
| may 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 workspaces |
| and objects cannot (by default) be read in earlier versions of R. |
| |
| o The number of bins selected by default in a histogram uses |
| the correct version of Sturges' formula and will usually be |
| one 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 the |
| latter is NA (the default), conversion is attempted to |
| logical, integer, numeric or complex, not just to numeric. |
| |
| o model.matrix() treats logical variables as a factors with |
| levels c(FALSE, TRUE) (rather than 0-1 valued numerical |
| variables). 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(), will |
| by 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 use |
| positional 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 a |
| character vector of length 0, rather than generating an |
| error. This is consistent with other functions and with S. |
| |
| o For compatibility with S4, any arithmetic operation using a |
| zero-length vector has a zero-length result. (This was |
| already true for logical operations, which were compatible |
| with 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 first |
| searches for a site environment file (given by the environment |
| variable `R_ENVIRON' if set or `R_HOME/etc/Renviron.site' if |
| not), *and* then for a user `.Renviron' file in the current or |
| the 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 and |
| so there may be sign changes in singular/eigen vectors, |
| including in cancor, cmdscale, factanal, princomp and varimax. |
| |
| |
| NEW FEATURES |
| |
| o Transparency is now supported on most graphics devices. |
| Internally colors include an alpha channel for opacity, but at |
| present 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. Those |
| devices (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 in |
| your workspace.) |
| |
| o A package `methods' has been added, containing formal classes |
| and methods ("S4" methods), implementing the description in |
| the book "Programming with Data". See "?Methods" and the |
| references there for more information. |
| |
| - In support of this, the "@" operator has been added to the |
| grammar. |
| |
| - Method dispatch for formal methods (the standardGeneric |
| function), 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 at |
| least work). The C-level dispatch is now implemented for |
| primitives that use either DispatchGroup or DispatchOrEval |
| internally. |
| |
| - A version of the function "plot" in the methods package has |
| arguments "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 within |
| DispatchOrEval) to dispatch any methods defined for |
| primitive functions. As with S3-style methods, methods can |
| only be defined if the first argument satisfies is.object(x) |
| (not strictly required for formal methods, but imposed for |
| now for simplicity and efficiency). |
| |
| o Changes to the tcltk package: |
| |
| - New interface for accessing Tcl variables, effectively |
| making the R representations lexically scoped. The old form |
| is being deprecated. |
| |
| - Callbacks can now be expressions, with slightly unorthodox |
| semantics. In particular this allows bindings to contain |
| "break" expressions (this is necessary to bind code to |
| e.g. Alt-x without having the key combination also insert an |
| "x" in a text widget.) |
| |
| - A bunch of file handling and dialog functions (previously |
| only available via tkcmd) have been added |
| |
| o The "?" operator is now an actual function. It can be used |
| (as always) as a unary operator (?plot) and the grammar now |
| allows it as a binary operator, planned to allow |
| differentiating documentation on the same name but different |
| type (class?matrix, for example). So far, no such |
| documentation exists. |
| |
| o New methods AIC.default() and logLik.glm(), also fixing |
| AIC(<glm obj>). |
| |
| o axis.POSIXct() allows the label date/times to be specified |
| via 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 in |
| assign(), exists(), get(), ls(), objects(), remove() and rm(). |
| |
| o Three new primitive functions have been added to base: |
| dataClass(), objWithClass(), and as.environment(). The first two |
| are support routines for class() and class<-() in package |
| methods. The third replaces pos.to.env() in the functions get(), |
| exists(), and friends. |
| |
| o barplot() now respects an inline `cex.axis' argument and has a |
| separate `cex.names' argument so names and the numeric axis |
| labels can be scaled separately. Also, graphics parameters |
| intended 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 single |
| boxplot; it and hence boxplot() now makes use of pch, cex, and bg |
| for outlier points(). |
| |
| bxp() and boxplot() also have an argument `outline' to suppress |
| outlier drawing {S-PLUS compatibly}. |
| |
| o New capabilities() options "GNOME" and "IEEE754". |
| |
| o New function casefold(), a wrapper for tolower/toupper |
| provided for compatibility with S-PLUS. |
| |
| o contour() is now generic. |
| |
| o cor.test() in package ctest now also gives an asymptotic |
| confidence interval for the Pearson product moment correlation |
| coefficient. |
| |
| o data(), demo() and library() now also return the information |
| about available data sets, demos or packages. Similarly, |
| help.search() returns its results. |
| |
| o density() allows `bw' or `width' to specify a rule to choose the |
| bandwidth, and rules "nrd0" (the previous default), "nrd", |
| "ucv", "bcv", "SJ-ste" and "SJ-dpi" are supplied (based on |
| functions 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 cache |
| flushing. |
| |
| All methods for download.file() do tilde-expansion on the path |
| name. |
| |
| The internal download.file() etc now allow URLs of the form |
| ftp://user@foo.bar/ and ftp://user:pass@foo.bar/ |
| |
| o duplicated() and unique() are now generic functions with |
| methods for data frames (as well as atomic vectors). |
| |
| o factanal() and princomp() use napredict() on their scores, so |
| na.action = na.exclude is supported. |
| |
| o Function getNativeSymbolInfo() returns details about a native |
| routine, potentially including its address, the library in |
| which it is located, the interface by which it can be called |
| and the number of parameters. |
| |
| o Functions such as help() which perform library or package index |
| searches now use NULL as default for their `lib.loc' argument so |
| that missingness can be propagated more easily. The default |
| corresponds to all currently known libraries as before. |
| |
| o Added function file.rename(). |
| |
| o hist.default() allows `breaks' to specify a rule to choose the |
| number of classes, and rules "Sturges" (the previous default), |
| "Scott" and "FD" (Freedman-Diaconis) are supplied (based on |
| package MASS). |
| |
| o Function identical(), a fast and reliable way to test for exact |
| equality of two objects. |
| |
| o New generic function is.na<-(), from S4. This is by default |
| equivalent to x[value] <- NA but may differ, e.g. for factors |
| where "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 difference |
| is most noticeable on systems with optimized BLAS libraries. |
| |
| o length() is now generic. |
| |
| o New function .libPaths() for getting or setting the paths to the |
| library 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 frame |
| now gives a specific error message. |
| |
| o loess(), lqs(), nls() and ppr() use the standard NA-handling |
| and 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 rather |
| than a confusing error message (for compatibility with S4). |
| Logicals are still coerced to numeric. |
| |
| o The formula interface to mosaicplot() now allows a contingency |
| table 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 direct |
| access to setting and retrieving environments. |
| |
| o Function nsl() to look up IP addresses of hosts: intended as |
| a way to test for internet connectivity. |
| |
| o Ops(), cbind(), diff() and na.omit() methods for time series |
| objects moved from package ts to package base. |
| |
| o New option `download.file.method' can be used to set the |
| default method for download.file() and functions which use it |
| such 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 to |
| set 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, and |
| support has been added for using Computer Modern type-1 |
| fonts (including for symbols). (Contributed by Brian D'Urso.) |
| |
| - There is now support for URW font families: this will give |
| access to more characters and more appropriate metrics on |
| PostScript 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 characters |
| than 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 start |
| comments on a line. |
| |
| o New function reg.finalizer() to provide R interface to |
| finalization. |
| |
| o reshape() extends reshapeLong, reshapeWide, which are deprecated. |
| |
| o rle() now returns a classed object, has a print method and |
| an inverse. |
| |
| o Changes to save() and friends: |
| |
| - save() now takes an envir argument for specifying where |
| items to be saved are to be found. |
| |
| - A new default format for saved workspaces has been |
| introduced. This format provides support for some new |
| internal data types, produces smaller save files when saving |
| code, and provides a basis for a more flexible serialization |
| mechanism. |
| |
| - Modified `save' internals to improve performance when saving |
| large collections of code. |
| |
| - save() and save.image() now take a `version' argument to |
| specify the workspace file-format version to use. The |
| version used from R 0.99.0 to 1.3.1 is version 1. The new |
| default format is version 2. load() can read a version 2 |
| saved workspace if it is compressed. |
| |
| - save() and save.image() now take a `compress' argument to |
| specify that the saved image should be written using the zlib |
| compression facilities. |
| |
| - save.image() now takes an argument `ascii'. |
| |
| - save.image() now takes an argument `safe'. If TRUE, the |
| default, a temporary file is used for creating the saved |
| workspace. The temporary file is renamed if the save |
| succeeds. This preserves an existing workspace if the save |
| fails, but at the cost of using extra disk space during the |
| save. |
| |
| - save.image() default arguments can be specified in the |
| `save.image.defaults' option. These specifications are used |
| when save.image() is called from q() or GUI analogs. |
| |
| |
| o scan() allows unlimited (by R) lengths of input lines, instead |
| of 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 allows |
| to go more closely towards interpolation (lambda -> 0) than before. |
| This also fixes smooth.spline() behavior for "df ~= n - 2". Better |
| error messages in several situations. |
| |
| Note that spar = 0 is no longer the default and no longer entails |
| cross-validation. |
| |
| o stars() has been enhanced; new `mar' argument uses smaller |
| mar(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 range |
| of objects (but stepAIC [in MASS] is still more powerful). |
| |
| o symbols() now has automatic xlab and ylab and a main argument |
| which eliminates an incorrect warning. It better checks wrongly |
| scaled arguments. |
| |
| o Sys.setlocale() now issues a warning if it fails. |
| |
| o An enhanced function type.convert() is now a documented |
| function, rather than just internal to read.table(). |
| |
| o warning() allows multiple arguments, following S4's style. |
| |
| o New function with() for evaluating expressions in environments |
| constructed from data. |
| |
| o Unix x11() devices can now have a canvas color set, which can |
| help to distinguish plotting "white" from plotting |
| "transparent". |
| |
| o On Unix, X11(), png() and jpeg() now give informative warnings |
| if they fail to open the device. |
| |
| |
| o The startup processing now interprets escapes in the values of |
| environment variables set in R_HOME/etc/Renviron in a similar |
| way to most shells. |
| |
| o The operator "=" is now allowed as an assignment |
| operator in the grammar, for consistency with other languages, |
| including recent versions of S-PLUS. Assignments with "=" are |
| basically allowed only at top-level and in braced or |
| parenthesized 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 an |
| assignment in future versions of R.) |
| |
| o Finalizers can be registered to be run on system exit for both |
| reachable and unreachable objects. |
| |
| o integer addition, subtraction, and multiplication now return NA's |
| on overflow and issue a warning. |
| |
| o Printing factors with both level "NA" and missing values |
| uses `<NA>' for the missing values to distinguish them. |
| |
| o Added an experimental interface for locking environments and |
| individual bindings. Also added support for "active bindings" |
| that link a variable to a function (useful for example for linking |
| an R variable to an internal C global). |
| |
| o GNOME interface now has separate colours for input and output |
| text (like the windows GUI). These can be modified via the |
| properties dialogue. |
| |
| o Output from the GNOME console is block buffered for increased |
| speed |
| |
| o The GNOME console inherits standard emacs-style keyboard |
| shortcuts from the GtkText widget for cursor motion, editing |
| and selection. These have been modified to allow for the prompt |
| at the beginning of the command line. |
| |
| o One can register R functions and C routines to be called at the |
| end of the successful evaluation of each top-level expression, |
| for example to perform auto-saves, update displays, etc. See |
| addTaskCallback() and taskCallbackManager(). See |
| http://developer.r-project.org/TaskHandlers.pdf. |
| |
| |
| DEPRECATED & DEFUNCT |
| |
| o .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 CHANGES |
| |
| o `Writing R Extensions' has a new chapter on generic/method |
| functions. |
| |
| |
| UTILITIES |
| |
| o New package `tools' for package development and administration |
| tools, 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 of |
| replacement 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 a |
| package 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 the |
| package DESCRIPTION file. It also tests for syntax errors in |
| the R code, whether all methods in the code have all arguments |
| of the corresponding generic, for arguments shown in \usage but |
| not documented in \arguments, and whether replacement functions |
| have their final argument named `value'. |
| |
| |
| C-LEVEL FACILITIES |
| |
| o arraySubscript and vectorSubscript are now available to package |
| users. All "array-like" packages can use a standard method for |
| calculating subscripts. |
| |
| o The C routine type2symbol, similar to type2str, returns a symbol |
| corresponding 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 and |
| error exits from compiled Fortran code. |
| |
| o A new serialization mechanism is available that can be used to |
| serialize R objects to connections or to strings. This |
| mechanism 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 with |
| errors handled but guaranteed to return to the calling C |
| routine. This is used in embedding R in other applications and |
| languages. |
| |
| o Support for attach()'ing user-defined tables of variables |
| is available and accessed via the RObjectTables package |
| currently at http://www.omegahat.org/RObjectTables. |
| |
| |
| BUG FIXES |
| |
| o Fixed share/perl/massage-examples.pl to detect instances of |
| par() at the very start of a line. |
| |
| o Fixed Pearson residuals for glms with non-canonical |
| link.(PR#1123). Fixed them again for weights (PR#1175). |
| |
| o Fixed an inconsistency in the evaluation context for on.exit |
| expressions between explicit calls to `return' and falling off |
| the end returns. |
| |
| o The code in model.matrix.default() handling contrasts was |
| assuming a response was present, and so without a response was |
| failing to record the contrasts for the first variable if it |
| was a factor. |
| |
| o diffinv() could get the time base wrong in some cases. |
| |
| o file.append() was opening all files in text mode: mattered |
| on 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 or |
| installing 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-column |
| model frame. |
| |
| o c.POSIXct was not setting the right classes in 1.3.x. |
| |
| o cor(*, use = "all.obs") <= 1 is now guaranteed which ensures |
| that sqrt(1 - r^2) is always ok in cor.test(). (PR#1099) |
| |
| o anova.glm() had a missing drop=FALSE and so failed for some |
| intercept-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 works |
| |
| o 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) now |
| works with dataframes containing POSIXt date columns. |
| |
| o integer(2^30+1) and similar ones do not segfault anymore but duly |
| report allocation errors. |
| |
| o seq(0, 0, 1) now works (PR#1133). |
| |
| o reshapeWide() got it wrong if the "i" factor was not sorted (the |
| function is now deprecated since reshape() is there, but the bug |
| still needed fixing...) |
| |
| o PR#757 was fixed incorrectly, causing improper subsetting of |
| pch etc. in plot.formula(). |
| |
| o library() no longer removes environments of functions that are |
| not defined in the top-level package scope. Also, packages |
| loaded by require() when sourcing package code are now visible |
| in 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-times |
| in 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 that |
| memory has been allocated (PR#1149), and had (often large) |
| memory leaks if interrupted. They now can be interrupted on |
| Windows 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 integral |
| answer. Previously it might not due to rounding errors in |
| fround. (PR#1138/9) |
| |
| o Several memory leaks on interrupting functions have been |
| circumvented. Functions lqs() and mve() can now be |
| interrupted on Windows and Mac OS. |
| |
| o image() was finding incorrect breakpoints from |
| irregularly-spaced midpoints. (PR#1160) |
| |
| o Use fuzz in the 2-sample Kolmogorov-Smirnov test in package |
| ctest to avoid rounding errors (PR#1004, follow-up). |
| |
| o Use exact Hodges-Lehmann estimators for the Wilcoxon tests in |
| package ctest (PR#1150). |
| |
| o Arithmetic which coerced types could lose the class |
| information, for example `table - real' had a class attribute |
| but was not treated as a classed object. |
| |
| o Internal ftp client could crash R under error conditions such |
| as failing to parse the URL. |
| |
| o Internal clipping code for circles could attempt to allocate |
| a vector of length -1 (related to PR#1174) |
| |
| o The hash function used internally in match(), unique() and |
| duplicated() was very inefficient for integers stored as |
| numeric, on little-endian chips. It was failing to hash the |
| imaginary part of complex numbers. |
| |
| o fifo() no longer tries to truncate on opening in modes |
| including "w". (Caused the fifo example to fail on HP-UX.) |
| |
| o Output over 1024 characters was discarded from the GNOME |
| console. |
| |
| o rug() now correctly warns about clipped values also for logarithmic |
| axes and has a `quiet' argument for suppressing these (PR#1188). |
| |
| o model.matrix.default was not handling correctly contrasts.arg |
| which did not supply a full set of contrasts (PR#1187). |
| |
| o The `width' argument of density() was only compatible with S |
| for a Gaussian kernel: now it is compatible in all cases. |
| |
| o The rbinom() C code had a transcription error from the original |
| Fortran which led to a small deviation from the intended |
| distribution. (PR#1190) |
| |
| o pt(t, , ncp=0) was wrong if t was +/-Inf. |
| |
| o Subsetting grouping factors gave incorrect degrees of freedom |
| for 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 passed |
| to 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 y |
| was 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 when |
| called from inside another function |
| |
| o write.table() failed if asked to quote a numerical matrix with |
| no 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.1 |
| |
| |
| NEW FEATURES |
| |
| o massage-examples is now a Perl script and about 50x faster. |
| |
| o On Unix(-alike) systems the default pager is now determined |
| during configuration, and is `less' if available, otherwise |
| `more' (and not `more -s' as previously). |
| |
| o configure now tests for strptime functions that fail on inputs |
| before 1970 (found on Irix). It no longer checks for the SCSL |
| and 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 integer |
| color). |
| |
| o pairs() function has a new `gap' argument for adjusting the |
| spacing 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 reading |
| unsigned 8- and 16-bit integers. |
| |
| o New capabilities() option "cledit". |
| |
| o Modified restore code to give clearer error messages in some cases. |
| |
| |
| |
| BUG FIXES |
| |
| o 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), including |
| via 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-sample |
| Kolmogorov-Smirnov test in 1.3.0 were for the wrong tail. |
| |
| o In the HTML conversion of .Rd files, \link[foo]{bar} was |
| ignoring [foo] outside \code{} statements. |
| |
| o lm.influence(), plot.lm(), influence.measures() and the |
| related diagnostic measures now handle lm() fits with |
| na.action=na.exclude. |
| |
| o Eliminated segmentation fault in while loops without braces |
| in 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 to |
| M. Schlather). |
| |
| o A long-standing bug leading to inaccuracy in polyroot() has been |
| fixed (PR#751) |
| |
| o A very old bug with eval() not handling a numeric `envir' argument |
| according to specifications has been fixed. [This in particular |
| broke ported S-PLUS code that used eval(..., sys.parent())]. Also, |
| eval() now checks that a numeric `envir' has length one to prevent |
| accidental 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 no |
| longer to include it. |
| |
| o Fixed protect bug in save() code that might have been responsible |
| for occasionally saving corrupted workspaces. |
| |
| o capabilities("X11") now reports if X11 is available in this |
| session, thereby giving the correct answer if --gui=none was |
| specified. |
| |
| o Rd files with ,, inside \code{} were treating this as a |
| ligature 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, and |
| now warns if it is exceeded (when the string has always been |
| truncated). |
| |
| 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 now |
| supported 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 left |
| of the kernel under some circumstances (PR#1050). |
| |
| o attr(x, "class") <- character(0) was segfaulting. Similar problem |
| with "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 an |
| misleading error message (PR#1061). |
| |
| o as.character() on a language object was truncating to about 70 |
| characters: the internal limit (from the deparse code) is now the |
| maximum possible 500. |
| |
| o X11() device was failing to re-initialize correctly after all |
| devices were shut down, so the colortype could not be changed |
| and some systems showed protocol errors. (PR#1065) |
| |
| o Converting Inf and NaN values by as.character() and reading by |
| scan() was supported by strtod on some platforms and not |
| others: 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 return |
| garbage for h >= max(tree$heights) anymore. (PR#1067) |
| |
| o interaction(...,drop=F) returned an object looking like a |
| factor, but with storage mode "double", confusing |
| model.matrix.default (PR#1003) |
| |
| o splineDesign(*, ord=) and others give better error messages for |
| wrong `ord' (and have slightly improved documentation). |
| |
| |
| CHANGES IN R VERSION 1.3.0 |
| |
| |
| NEW FEATURES |
| |
| o Changes to connections: |
| |
| - New function url() to read from URLs. file() will also |
| accept URL specifications, as will all the functions which |
| use it. |
| |
| - file connections can now be opened for both reading and writing. |
| |
| - Anonymous file connections (via file()) are now supported. |
| |
| - New function gzfile() to read from / write to compressed files. |
| |
| - New function fifo() for connections to / from fifos (on Unix). |
| |
| - Text input from file, pipe, fifo, gzfile and url connections |
| can be read with a user-specified encoding. |
| |
| - New functions readChar() and writeChar() to read character |
| strings with known lengths and no terminators, and to write |
| user-specified lengths from strings. |
| |
| - sink() now has a stack of output connections, following S4. |
| |
| - sink() can also be applied to the message stream, to capture |
| error messages to a connection. Use carefully! |
| |
| - seek() has a new `origin' argument. |
| |
| - New function truncate() to truncate a connection open for |
| writing at the current position. |
| |
| - Socket connections via function socketConnection(). |
| |
| - The `blocking' argument for file, fifo and socket connections |
| is now operational. |
| |
| o Changes to date/time classes and functions: |
| |
| - Date/time objects now all inherit from class "POSIXt". |
| |
| - New function difftime() and corresponding class for date/time |
| differences, and a round() method. |
| |
| - Subtraction and logical comparison of objects from different |
| date/time classes is now supported. NB: the format for the |
| difference of two objects of the same date/time class has |
| changed, but only for objects generated by this version, not |
| those generated by earlier ones. |
| |
| - Methods for cut(), seq(), round() and trunc() for date/time |
| classes. |
| |
| - Convenience generic functions weekdays(), months(), quarters() |
| and julian() with methods for "POSIXt" objects. |
| |
| o Coercion from real to integer now gives NA for out-of-range |
| values, rather than the most extreme integer of the same sign. |
| |
| o The Ansari-Bradley, Bartlett, Fligner-Killeen, Friedman, |
| Kruskal-Wallis, Mood, Quade, t, and Wilcoxon tests as well as |
| var.test() in package ctest now have formula interfaces. |
| |
| o Matrix multiplication functions %*% and crossprod() now use a |
| level-3 BLAS routine dgemm. When R is linked with the ATLAS |
| or other enhanced BLAS libraries this can be substantially |
| faster than the previous code. |
| |
| o New functions La.eigen() and La.svd() for eigenvector and |
| singular value decompositions, based on LAPACK. These are |
| preferred to eigen() and svd() for new projects and can make |
| use of enhanced BLAS routines such as ATLAS. They are |
| used in cancor(), cmdscale(), factanal() and princomp() |
| and this may lead to sign reversals in some of the output of |
| those functions. |
| |
| o Provided the Fortran compiler can handle COMPLEX*16, the |
| following routines now handle complex arguments, based on |
| LAPACK code. |
| |
| qr, qr.coef, qr.solve, qr.qy, qr.qty, solve.default, svd, La.svd. |
| |
| |
| |
| o aperm() uses strides in the internal C code and so is |
| substantially faster (by Jonathan Rougier). |
| |
| o The four bessel[IJKY](x,nu) functions are now defined for nu < 0. |
| |
| o [dpqr]nbinom also accept an alternative parametrization via the |
| mean and the dispersion parameter (thanks to Ben Bolker). |
| |
| o Generalised "birthday paradox" functions [pq]birthday. |
| |
| o boxplot() and bxp() have a new argument `at' |
| |
| o New function capabilities() to report optional capabilities |
| such as jpeg, png, tcltk, gzfile and url support. |
| |
| o New function checkFF() for checking foreign function calls. |
| |
| o New function col2rgb() for color conversion of names, hex, or |
| integer. |
| |
| o coplot() has a new argument `bar.bg' (color of conditioning bars), |
| gives nicer plots when the conditioners are factors, and allows |
| factors for x and y (treated almost as if unclass()ed) using new |
| argument `axlabels'. [original ideas by Thomas Baummann] |
| |
| o `hessian' argument added to deriv() and its methods. A new function |
| deriv3() provides identical capabilities to deriv() except that |
| `hessian' is TRUE by default. |
| deriv(*, *, func = TRUE) for convenience. |
| |
| o New dev.interactive() function, useful for setting defaults for |
| par(ask=*) in multifigure plots. |
| |
| o dist() in package mva can now handle missing values, and |
| zeroes in the Canberra distance. |
| |
| o The default method for download.file() (and functions which use |
| it such as update.packages()) is now "internal", and uses code |
| compiled into R. |
| |
| o eigen() tests for symmetry with a numerical tolerance. |
| |
| o New function formatDL() for formatting description lists. |
| |
| o New argument `nsmall' to format.default(), for S-PLUS |
| compatibility (and used in various packages). |
| |
| o ?/help() now advertises help.search() if it fails to find a topic. |
| |
| o image() is now a generic function. |
| |
| o New function integrate() with S-compatible call. |
| |
| o New function is.unsorted() the C version of which also speeds up |
| .Internal(sort()) for sorted input. |
| |
| o is.loaded() accepts an argument PACKAGE to search within |
| a specific DLL/shared library. |
| |
| o Exact p-values are available for the two-sided two-sample |
| Kolmogorov-Smirnov test. |
| |
| o lm() now passes `...' to the low level functions for regression |
| fitting. |
| |
| o Generic functions logLik() and AIC() moved from packages nls |
| and nlme to base, as well as their *.lm methods. |
| |
| o New components in .Machine give the sizes of long, long long and |
| long double C types (or 0 if they do not exist). |
| |
| o merge.data.frame() has new arguments, `all[.xy]' and `suffixes', |
| for S compatibility. |
| |
| o model.frame() now calls na.action with the terms attribute set |
| on the data frame (needed to distiguish the response, for |
| example). |
| |
| o New generic functions naresid(), napredict() and naprint() |
| (formerly in packages survival5 and MASS, also used in rpart). |
| Also na.exclude(), a variant on na.omit() that is handled |
| differently by naresid() and napredict(). |
| |
| The default, lm and glm methods for fitted, residuals, predict |
| and weights make use of these. |
| |
| o New function oneway.test() in package ctest for testing for |
| equal means in a one-way layout, assuming normality but not |
| necessarily equal variances. |
| |
| o options(error) accepts a function, as an alternative to |
| an expression. (The Blue Book only allows a function; current |
| S-PLUS a function or an expression.) |
| |
| o outer() has a speed-up in the default case of a matrix outer |
| product (by Jonathan Rougier). |
| |
| o package.skeleton() helps with creating new packages. |
| |
| o New pdf() graphics driver. |
| |
| o persp() is now a generic function. |
| |
| o plot.acf() makes better use of white space for `nser > 2', has |
| new optional arguments and uses a much better layout when more |
| than one page of plots is produced. |
| |
| o plot.mts() has a new argument `panel' providing the same |
| functionality as in coplot(). |
| |
| o postscript() allows user-specified encoding, with encoding files |
| supplied for Windows, Mac, Unicode and various others, and with |
| an appropriate platform-specific default. |
| |
| o print.htest() can now handle test names that are longer than |
| one line. |
| |
| o prompt() improved for data sets, particularly non-dataframes. |
| |
| o qqnorm() is now a generic function. |
| |
| o read.fwf() has a new argument `n' for specifying the number of |
| records (lines) read in. |
| |
| o read.table() now uses a single pass through the dataset. |
| |
| o rep() now handles lists (as generic vectors). |
| |
| o scan() has a new argument `multi.line' for S compatibility, |
| but the default remains the opposite of S (records can cross |
| line boundaries by default). |
| |
| o sort(x) now produces an error when x is not atomic instead of |
| just returning x. |
| |
| o split() now allows splitting on a list of factors in which case |
| their interaction defines the grouping. |
| |
| o stl() has more optional arguments for fine tuning, a summary() |
| and an improved plot() method. |
| |
| o New function strwrap() for formatting character strings into |
| paragraphs. |
| |
| o New replacement functions substr<-() and substring<-(). |
| |
| o Dataset swiss now has row names. |
| |
| o Arguments `pkg' and `lib' of system.file() have been renamed to |
| `package' and `lib.loc', respectively, to be consistent with |
| related functions. The old names are deprecated. Argument |
| `package' must now specify a single package. |
| |
| o The Wilcoxon and Ansari-Bradley tests now return point |
| estimators of the location or scale parameter of interest along |
| with confidence intervals for these. |
| |
| o New function write.dcf() for writing data in Debian Control File |
| format. parse.dcf() has been replaced by (much faster) internal |
| read.dcf(). |
| |
| o Contingency tables created by xtabs() or table() now have a |
| summary() method. |
| |
| o Functions httpclient(), read.table.url(), scan.url() and |
| source.url() are now deprecated, and hence method="socket' in |
| download.file() is. Use url connections instead: in |
| particular URLs can be specified for read.table(), scan() and |
| source(). |
| |
| o Formerly deprecated function getenv() is now defunct. |
| |
| o Support for package-specific demo scripts (R code). demo() now |
| has new arguments to specify the location of demos and to allow |
| for running base demos as part of `make check'. |
| |
| o If not explicitly given a library tree to install to or remove |
| from, respectively, R CMD INSTALL and R CMD REMOVE now operate |
| on the first directory given in `R_LIBS' if this is set and |
| non-null, and the default library otherwise. |
| |
| o R CMD INSTALL and package.description() fix some common problems |
| of DESCRIPTION files (blank lines, ...) |
| |
| o The INSTALL command for package installation allows a `--save' |
| option. Using it causes a binary image of the package contents |
| to be created at install time and loaded when the package is |
| attached. This saves time, but also uses a more standard way |
| of source-ing the package. Packages that do more than just |
| assign object definitions may need to install with `--save'. |
| Putting a file `install.R' in the package directory makes |
| `--save' the default behavior. If that file is not empty, its |
| contents should be R commands executed at the end of loading |
| the image. |
| |
| There is also a new command line option `--configure-vals' for |
| passing variables to the configure script of a package. |
| |
| o R CMD check now also checks the keyword entries against the list |
| of standard keywords, for code/documentation mismatches (this |
| can be turned off by the command line option `--no-codoc'), and |
| for sufficient file permissions (Unix only). There is a new check |
| for the correct usage of library.dynam. |
| |
| It also has a new command line option `--use-gct' to use |
| `gctorture(TRUE)' when running R code. |
| |
| o R CMD Rd2dvi has better support for producing reference manuals |
| for packages and package bundles. |
| |
| o configure now tests for the versions of jpeg (>= 6b), libpng (>= |
| 1.0.5) and zlib (>= 1.1.3). It no longer checks for the |
| CXML/DXML BLAS libraries on Alphas. |
| |
| o Perl scripts now use Cwd::cwd() in place of Cwd::getcwd(), as |
| cwd() can be much faster. |
| |
| o R::Dcf.pm can now also handle files with more than one record |
| and checks (a little bit) for continuation lines without leading |
| whitespace. |
| |
| o New manual `R Installation and Administration' with fuller |
| details on the installation process: file `INSTALL' is now a |
| brief introduction referencing that manual. |
| |
| o New keyword `internal' which can be used to hide objects that |
| are not part of the API from indices like the alphabetical lists |
| in the HTML help system. |
| |
| o Under Unix, shlib modules for add-on packages are now linked |
| against R as a shared library (`libR') if this exists. (This |
| allows for improved embedding of R into other applications.) |
| |
| o New mechanism for explicitly registering native routines in a |
| DLL/shared library accessible via .C(), .Call(), .Fortran() and |
| .External(). This is potentially more robust than the existing |
| dynamic lookup, since it checks the number of arguments, type of |
| the routine. |
| |
| o New mechanism allowing registration of C routines for converting |
| R objects to C pointers in .C() calls. Useful for references to |
| data in other languages and libraries (e.g. C and hdf5). |
| |
| o The internal ftp/http access code maintains the event loop, so |
| you can download whilst running tcltk or Rggobi, say. It can |
| be hooked into package XML too. |
| |
| |
| |
| BUG FIXES |
| |
| o boxplot.stats() now returns the correct `n' component in the case of |
| NAs. This also affects `conf', the notch length (PR#967). |
| |
| o the "coef = 0" fix (PR#917) to boxplot.stats() broke |
| boxplot.stats(do.out = FALSE). |
| |
| o curve(* , add = FALSE) now works correctly again if used when |
| par("xlog") is true. |
| |
| o Printing a dataframe with a column called "row.names" or |
| "check.names" omitted the column. |
| |
| o data.frame(a=1, b=2)[1, -(1:2)] now works, giving an empty |
| data frame. as.matrix(df), deparse(), dput() and str() now work |
| for empty data frames. |
| |
| o dbeta() could return zero erroneously on some platforms where |
| roundoff makes e.g. 1.3 - 1 > (1.3 + 1) - 2 (Solaris and HP-UX |
| were affected). (PR#970) |
| |
| o pointer protection in deriv() (PR#953) |
| |
| o expand.data.frame() didn't interpret its subset= argument in |
| the data frame. (PR#979 et al., fix from Greg Warnes) |
| |
| o format() on character arrays was losing the dimensions. |
| |
| o hist.default() was ignoring its `probability' argument for |
| equi-spaced breaks. |
| |
| o Occasionally insane results of is.nan(NULL), is.na(NULL) (PR#952) |
| |
| o ks.test() in package ctest now had the one-sided alternatives in |
| the one-sample case reversed (PR#934). |
| |
| o ls.str() and lsf.str() now work better with pos > 1, and are |
| correctly documented (PR#899). |
| |
| o plot(1:2, xaxs = "i") now gives both "1.0" and "2.0" x-axis labels. |
| |
| o promax() was not using its `m' argument (m=4 was always used). |
| |
| o qr.X() was ignoring pivoting (which happens only in |
| rank-deficient cases). |
| |
| o sign of Pearson residuals was wrong for reciprocal link (PR#862) |
| |
| o The algorithm for determining starting estimates in the SSfpl |
| self-starting model in the nls package was changed following a |
| suggestion by Phillipe Grosjean <phgrosje@ulb.ac.be> |
| |
| o svd(x)$v was not a matrix when x had only 1 row (PR#963). |
| |
| o symnum(x) behaves more reasonably for zero length or non-numeric x. |
| |
| o The implementation of sys.function() did not work when the |
| current function was already a function (e.g., a closure). |
| |
| o tapply() had "..." argument after simplify=, which made it |
| incompatible with S when passing additional unnamed arguments to FUN. |
| |
| o use formula environments in xy.coords() (PR#932) |
| |
| |
| o Unused entry points in `src/appl/fortran.c' and `Fortran.h' |
| have been removed. |
| |
| o Unused directory `src/f2clib' and header `src/include/R_ext/f2c.h' |
| have been removed. |
| |
| o The documentation and parts of the parse/deparse mechanism |
| indicated that there was an operator `%'. Corrected (PR#925). |
| |
| o Fixed some cases where the deparser gave code that threw a |
| syntax error when parsed. |
| |
| o Using a pushback with more than two lines at a time could crash. |
| |
| o Eliminate or warn on use of .Last.value in help examples, since |
| .Last.value is only set from top-level expressions (and was |
| incorrectly documented). |
| |
| o asInteger was ignoring integer overflow (PR#929 and others). |
| |
| o approxfun(*, ties = <fun>) could return garbage when there were ties; |
| ties = "ordered" was incorrect--also for approx()-- when there was |
| a tie at the very right. |
| |
| |
| ************************************************** |
| * * |
| * 1.2 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.2.3 |
| |
| NEW FEATURES |
| |
| o Support for configuration and building the Unix version of R |
| under Mac OS X. (The `classic' Macintosh port is `Carbonized' |
| and also runs under that OS.) |
| |
| o dotchart() and stripchart() become the preferred names for |
| dotplot() and stripplot(), respectively. The old names are now |
| deprecated. |
| |
| o Functions in package ctest now consistently use +/-Inf rather |
| than NA for one-sided confidence intervals. |
| |
| |
| |
| BUG FIXES |
| |
| o `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 with |
| the standard C entry point of the same name. |
| |
| o Printing of kernels in package ts was unreliable: the internal |
| representation 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 up |
| formals() and match.arg() (PR#872) |
| |
| o Deparsing or dumping attributes with non-standard names was |
| not quoting the name (PR#871). |
| |
| o We now use match.fun() in tapply() so that it won't get trapped |
| by non-functions masking FUN. |
| |
| o The `nmax' argument in scan(what=list(...), nmax=300) was |
| counting blank lines, although they were said to be ignored. |
| This affected using read.table on files with blank lines in |
| 1.2.2, and using `n' with `what' a list. |
| |
| o as.numeric(), as.integer(), as.complex() returned zero on |
| completely blank strings. Now they return NA. (PR#870) |
| |
| o Overflow in deparse() in terms(formula) with very long left-hand |
| side 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 as |
| the order of evaluation of calls to random numbers was not |
| fully defined. This affected the Mac port. |
| |
| o ppr() inside nested calls sometimes failed to find objects |
| due 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 incorrect |
| results 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 for |
| equidistant breakpoints. |
| |
| o Calls to replacement functions ("f<-") lost argument names |
| (PR#888). |
| |
| o is.na() and is.nan() gave random results on lists containing |
| zero-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 errors |
| if 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 instead |
| of silent nonsense. print.smooth.spline() now makes use of a |
| digits argument. |
| |
| o Confidence intervals for wilcox.test() had the samples reversed |
| in the two-sided case (PR#895), and sometimes got continuity |
| correction wrong (PR#896). |
| |
| o Using out-of-range font values in text() on a postscript() |
| device on Windows could crash. .ps.prolog was incorrectly |
| named in some of the documentation. (PR#914) |
| |
| o Warning messages of > 8191 chars could crash R (PR#902), as |
| could errors. Now they are truncated to 8191 chars on |
| machines 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 ^V |
| rather than ^Z in input (if drop.ctrl.z = TRUE, the default). |
| |
| o boxplot(*, range = 0) and boxplot.stats(*, coef = 0) now |
| don'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.2 |
| |
| |
| NEW FEATURES |
| |
| o The Macintosh port becomes a full member of the R family and its |
| sources 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 under |
| LGPL rather than GPL to allow dynamically loaded code to be |
| distributed under licences other than GPL. |
| |
| o postscript() and xfig() devices now make use of genuine Adobe |
| afm files, and warn if characters are used in string width or |
| height calculations that are not in the afm files. |
| |
| o Configure now uses a much expanded search list for finding a |
| FORTRAN 77 compiler, and no longer disallows wrapper scripts for |
| this compiler. |
| |
| o New Rd markup \method{GENERIC}{CLASS} for indicating the usage |
| of methods. |
| |
| o print.ftable() and write.ftable() now have a `digits' argument. |
| |
| o undoc() has a new `lib.loc' argument, and its first argument is |
| now called `package'. |
| |
| |
| BUG FIXES |
| |
| o The behaviour of polygon() with NA coordinate values is now |
| documented. |
| |
| 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 of |
| long types (such as long double) when available. |
| |
| o The C function fprec was not handling very small denormalized |
| numbers correctly. This affected the way they were printed on |
| Windows, for example. |
| |
| o legend() now draws points after lines allowing "empty dots on |
| lines" 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 find |
| the linked help files if more than one package was loaded (as |
| now happens by default). |
| |
| o scan now sets the maximal sizes internally when `what' is a list |
| from `nmax' and failing that `nlines'. This uses memory much |
| more efficiently if `nmax' is specified. read.table() makes use |
| of this. |
| |
| o The FORTRAN code used is now much closer to ANSI compliance. |
| |
| o cov.rob() gives a useful error message on nearly-degenerate |
| matrices. |
| |
| o summary() on a data frame was computing results to a precision |
| based on options("digits") (default 4), not its `digits' |
| argument. Now results are computed to full precision but |
| formatted using `digits'. |
| |
| o summary(m, digits=*) also properly works for matrices. |
| |
| o When returning parameters from .C/.Fortran, the OBJECT field was |
| not copied even though class attributes were (PR#834). |
| |
| o There was a spurious warning from the X11 driver on 100 dpi |
| displays (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 with |
| dimnames (by dropping them). |
| |
| o The xfig() driver was not closing unclosed polygons as the R |
| driver 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 in |
| cbind(successes, failures) ~ lhs form, since 1.2.0. |
| |
| o Eliminate packing of the `structRstart' structure, which was |
| probably 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 the |
| labels (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 FVWM |
| by selecting Destroy), the input handler would loop, leaving the |
| "please save work and shut down R" advice useless. There should now |
| be an opportunity for a relatively graceful exit. |
| |
| o polyroot() misbehaved if all coefficients except that of the highest |
| degree term were zero (partial fix for PR#751) |
| |
| o spline(method="natural") was extrapolating incorrectly (both |
| to 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 the |
| platform-specific help files. |
| |
| o parse.dcf() and hence package.contents() now work with a warning |
| for empty contents' files. |
| |
| o which.min() and which.max() now properly work for 0-length and |
| NA-only arguments. |
| |
| |
| |
| CHANGES IN R VERSION 1.2.1 |
| |
| |
| NEW FEATURES |
| |
| o New functions factanal(), varimax(), promax() and examples in |
| package mva. |
| |
| o New functions readBin() and writeBin() to transfer binary data |
| to 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's |
| DESCRIPTION file in addition to its INDEX. |
| |
| o Sd2Rd can handle S4-style documentation too: see `Writing R |
| Extensions'. |
| |
| o prompt() now also works with a character argument (useful for |
| producing many *.Rd files in a loop). |
| |
| o The Unix front-end shell script now ignores a value for R_HOME |
| found in the environment. |
| |
| o Connections functions such as file() now accept a description of |
| length > 1, with a warning. |
| |
| o All text-mode connections now accept input with LF, CR or CRLF |
| line endings. This means that readLines() can be used on DOS |
| files and source() on Mac files, for example. |
| |
| Also, CRLF-terminated files can be used as stdin on Unix, and |
| files with last lines without an EOL mark can be used as stdin |
| and 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 lwd |
| are now arguments. Further, the argument names (xlim, ylim, |
| axes) are now consistent with other plot functions. The key symbol |
| is 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 a |
| package. |
| |
| o Horizontal boxplots are possible with horizontal = TRUE. |
| |
| o all.equal() on lists now compares them as generic vectors, that |
| is they are equal if have identical names attributes and |
| all components are equal. |
| |
| o Invalid lines in .Renviron now give warnings when R is started. |
| |
| o Argument `na.last' implemented for rank(). |
| |
| |
| BUG FIXES |
| |
| o There have been many small improvements/corrections in the |
| documentation. In particular: |
| |
| The help pages for lm and glm now describe the fitted objects. |
| |
| is.vector() is now correctly documented: complex vectors and |
| lists return TRUE. |
| |
| o The default sortedXyData constructor in the nls package now |
| handles missing values in the response. |
| |
| o On startup, file .RData is now restored *after* the site and |
| user profiles are loaded (if at all). This is as previously |
| documented. |
| |
| o as.POSIXlt (and *ct) operating on a character string |
| only 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 as |
| Windows) that benefit from it. |
| |
| o Prevent closing the sink connection (which would be a silly |
| thing to do). |
| |
| o showConnections(all = TRUE) was sometimes counting connections |
| incorrectly, 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 names |
| in 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 and |
| other datasets, as documented in `Writing R Extensions'. |
| |
| o glm() now returns correct linear predictor and fitted values |
| for zero-weight cases. |
| |
| o scan(strip.white=TRUE) and readline() could give incorrect |
| answers 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 of |
| other values by a few bits as well. |
| |
| o The convergence criterion in the Fortran SVD code has been |
| changed to circumvent spurious convergence errors when |
| comparing extended-precision quantities on ix86 Linux (and |
| some compilers and options). |
| |
| o Rdindex now handles multi-line \title{}'s correctly. |
| |
| o Add weights.glm() so that plot.lm() gets the correct weights from |
| glm objects (the ones that go with deviance residuals not the |
| working residuals). |
| |
| o Printing a language object (e.g. a formula) in a list was |
| clobbering the buffer holding the tag labels which then were |
| lost in subsequent lines of printout (PR#746). |
| |
| o aic in family() objects is now computed more precisely using |
| dxxxx(log=TRUE). For binomial fits the value was wrong for |
| models 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 (as |
| formerly in demo(lm.glm)) now gives a warning, as the theory and |
| in particular the AIC value is not applicable. |
| |
| o demo(is.things) works again {is.ALL() doesn't call methods |
| anymore}. |
| |
| 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-existent |
| columns 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, which |
| is 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. broke |
| library(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 error |
| message rather than a segfault. |
| |
| o Loading .Random.seed could extremely rarely and with some |
| generators reject a value as NA_INTEGER when it was valid. |
| |
| o save(..., ascii=TRUE) created broken files when saving strings |
| containing special characters (ASCII code > 127). |
| |
| o mean(c(1,NA,NA,NA)[-1], trim = .1, na.rm = TRUE) doesn't give an |
| error anymore. |
| |
| o As the supplied afm files are not properly in the ISOLatin1 |
| encoding, the font metric for "-" was wrong since 0.63 on a |
| postscript/xfig device, and randomly wrong in 1.2.0. It will |
| now 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 both |
| occurrences: previously only one was present. |
| |
| o The data-time functions try harder to guess the DST setting |
| when the OS does not know, as some OSes were printing times |
| in DST if this was marked as unknown. |
| |
| o Setting par(pty=) after par(pin=) or par(plt=) was having no |
| effect until the margins were set. |
| |
| o Nested \describe sections in .Rd files have (again) nested |
| indentation when converted to text. |
| |
| o Concatenation of C strings by ## is no longer used, to avoid |
| spurious warnings from some recent versions of gcc. |
| |
| o dev.copy2eps() allows a `paper' argument to be passed to |
| postscript(). |
| |
| o file.show() handles the case of zero files better. |
| |
| o formula.lm uses object$formula if it exists, in preference |
| to 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.0 |
| |
| |
| NEW FEATURES |
| |
| o There is a new memory management system using a generational |
| garbage collector. This improves performance, sometimes |
| marginally but sometimes by double or more. The workspace is |
| no longer statically sized and both the vector heap and the |
| number of nodes can grow as needed. (They can shrink again, |
| but never below the initially allocated sizes.) See ?Memory |
| for a longer description, including the new command-line |
| options to manage the settings. |
| |
| o values of `--min-nsize' up to 50M (2Gb on 64-bit Solaris) are |
| allowed. |
| |
| o A (preliminary) version of S4-like connections has been added, |
| and most functions which take a "file" argument can now work |
| with a connection as well as a file name. For more details, |
| see the chapter on Connections in the R Data Import/Export |
| manual. |
| |
| 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 uses |
| locale-based ordering for ranges on platforms with strcoll. |
| |
| o The print routines now escape " (as \") in a character string |
| only when it is printed as a quoted string. This makes |
| print(, quote=FALSE) and cat() consistent. |
| |
| |
| o The standard methods for add1() and drop1() now attempt to cope |
| with 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 S |
| and anova.glmlist(). The old behaviour is still available by |
| calling anovalist.lm() directly. |
| |
| o anova() for multiple lm and glm objects no longer truncates the |
| formula printed. There is much more extensive documentation |
| for anova() methods. |
| |
| o New method as.data.frame.table() for converting the array-based |
| representation of a contingency table to a data frame containing |
| the classifying factors and the corresponding counts. |
| |
| o New function assocplot() for producing Cohen-Friendly |
| association 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 models |
| such 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 support |
| for tree-like structures (plotting, cutting, ...). |
| |
| o dev.copy2eps() and dev2bitmap() preserve the aspect ratio of the |
| copied device if just one of `width' and `height' is specified. |
| |
| o dump() has new argument append, argument `fileout' has been |
| renamed to `file' (for consistency with all other functions). |
| |
| o edit.default() now checks for an unset `editor' argument, and |
| terminates with an error if the editor cannot be run. |
| |
| o The `mode' argument of exists() and get() is interpreted |
| as mode(x) rather than typeof(x), following S. |
| |
| o New functions file.access() and file.info() for information on |
| files on the user's file systems. |
| |
| o New convenience function file.copy(). |
| |
| o file.show() allows `pager' argument to be an R function, and |
| consequently, the `pager' option can be an R function. |
| |
| o Formatting (and printing) of data.frames with complex objects is |
| improved. toString was added as a new function. |
| |
| o format() has a new argument `justify' controlling the |
| justification of character strings (and factors). |
| |
| o Formula objects now have an environment and code manipulating |
| them needs to take care to preserve it or set an appropriate |
| environment. |
| |
| o New function fourfoldplot() for producing fourfold displays of |
| 2 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 garbage |
| collection. |
| |
| o hclust() takes new argument `members' allowing dissimilarity |
| matrices both for singletons (as until now) and clusters. |
| |
| o help() has an additional `pager' argument which may be passed to |
| file.show() {useful for ESS fans}. |
| |
| o There is now an R `Hershey' list object for Hershey vector font |
| computations and documentation. |
| |
| o hist() now returns a "histogram" object and calls the new |
| function plot.histogram() for plotting. |
| It now also allows character labels. |
| |
| o if(*) now gives a more intelligible error message |
| when "*" 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(), saved |
| with savehistory() and displayed with history(), under Windows |
| and under Unix using the readline or GNOME interfaces. |
| |
| o mad() has new (logical) arguments "low" and "high" (the first |
| giving S compatibility). |
| |
| o New function manova() and summary method. |
| |
| o Function mantelhaen.test() in package ctest now can deal with |
| general 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 not |
| found in the data argument. See help(formula). |
| |
| o mosaicplot() can now also create extended mosaic plots, which |
| visualize the residuals from a log-linear model using color and |
| outline. |
| |
| o New utility function n2mfrow(). |
| |
| o nlm(check.analyticals = TRUE) now warns if the supplied |
| gradient 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 at |
| each evaluation. |
| |
| o The L-BFGS-B method of optim() now support tracing, at several |
| levels of detail. |
| |
| o options(check.bounds = TRUE) makes each vector extension |
| by sub-assignment ("x[.] <- .") produce a warning. |
| |
| o options(width) now admits to a limit (previously 200, now |
| 10000) 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 now |
| a documented entry point. |
| |
| o .Platform has new component "endian", useful for binary file |
| manipulations. |
| |
| 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-empty |
| defaults 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 in |
| running text. |
| |
| o The postscript() driver allows its prolog to be changed (by an |
| expert) 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 it |
| easier to read delimited files as Windows programs tend to |
| create (usually TAB separated). |
| |
| o New readLines() function to read a file line-by-line. |
| |
| o New functions reshapeLong() and reshapeWide() emulating Stata's |
| reshape command. These are still labeled experimental and |
| might be improved (or removed) in later versions. |
| |
| o row.names() and row.names<-() are now generic functions which |
| call rownames() as their default method and have methods for |
| class "data.frame". |
| |
| o New function Rprof() for profiling R expressions under Unix. |
| Configure with `--enable-R-profiling' (on by default) to make |
| this operational. |
| |
| o save(, oldstyle=TRUE) has been withdrawn. |
| |
| o scan() and read.table() have a new argument `fill' which can |
| be set TRUE to allow reading files with unequal number of |
| fields per line. (Programs like Excel have a habit of creating |
| such 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 of |
| 3RSR) and more arguments, e.g. `twiceit' for some S |
| compatibility and `kind = "3R"' for running medians of 3. |
| |
| o strsplit() has a new argument `extended' controlling whether to |
| use extended (the default) or basic regular expressions for |
| splitting. |
| |
| o Sys.getenv() becomes the preferred name for getenv(), which is |
| now deprecated. |
| |
| o New functions Sys.getlocale() and Sys.setlocale() to query and |
| set aspects of the locale of the R process, and |
| Sys.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) in |
| the 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 support |
| functions know about time zones (if the OS does). |
| |
| o tcltk package now has tkpager() which is designed to be used |
| by file.show() and shows help pages etc. in separate text |
| widgets. |
| |
| o tcltk is now more careful about removing the objects |
| representing widgets in the R workspace when the windows are |
| destroyed (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 - the |
| nonlocal return from R's error handling could bring the Tk |
| system 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 by |
| formula(terms.object). |
| |
| o traceback() is now printed un-quoted and labelled by the |
| frame number. |
| |
| o New argument `recursive' to unlink(). The default behaviour on |
| Unix is now that of rm -f, not rm -rf. unlink() is now |
| compatible across platforms. |
| |
| o New functions write.ftable() and read.ftable() for writing out |
| and reading in flat contingency tables. |
| |
| o write.table() now quotes factor columns if quote=TRUE, and has |
| a new argument `qmethod' to control the escaping of |
| embedded quotes in character or factor columns. |
| |
| o New function xtabs() providing a formula interface to cross |
| tabulation. |
| |
| |
| 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 built |
| in the same way as the other manuals. |
| |
| o The R manuals (R-intro, R-exts, ...) are converted to HTML |
| format (if the necessary texinfo tools are available) and |
| linked into the top HTML help page. |
| |
| o The header file `R.h' and those included from it are now usable |
| with C++ code. |
| |
| o New header file `R_ext/Boolean.h': Rboolean type with TRUE and |
| FALSE enum constants. |
| |
| o New header file `Rgraphics.h' to allow addons to use graphics |
| structures. |
| |
| o Recommended include file `Rmath.h' replaces `R_ext/Mathlib.h'. |
| |
| o Bessel, beta and gamma functions are now documented as part of |
| the API. Undocumented entry points are no longer in the |
| header 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:' field |
| giving 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_CXXLDFLAGS |
| for specifying the command and flags needed for building shared |
| libraries containing objects from a C++ compiler. |
| Configure tries to get these right in typical cases (GNU tools |
| and/or common platforms). |
| C++ source suffixes `.cpp' and `.C' are now recognized in |
| addition to `.cc'. |
| |
| o Configure/build variables MAINLD and MAINLDFLAGS are renamed to |
| MAIN_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 77 |
| intrinsic and run-time libraries needed for linking a Fortran 77 |
| program or shared library (as determined by configure). BLAS |
| library detection was extended, with results saved to the Make |
| variable 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 the |
| directory structure and control files, makes a temporary |
| installation and runs LaTeX on the help pages. Build has been |
| reduced 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 central |
| place in $R_HOME/share. Migration of existing files might take |
| a 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 shared |
| library. |
| |
| There is also a linker front-end `R CMD LINK' which is useful |
| for creating executable programs linked against the R shared |
| library. |
| |
| |
| BUG FIXES |
| |
| o New "[.AsIs" function fixing PR#665. |
| |
| o Effectively zero-length arrows() are omitted (rather than getting |
| a 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 warning |
| when 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,*), or |
| dnbinom(*,*,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 as |
| needed, so e.g. dev.print(file="junk.ps", horizontal=F) will |
| work (previously =FALSE was needed). |
| |
| o Now dweibull(0,1) == dexp(0) == 1 for consistency. |
| |
| o Changing column modes from factor/character to numeric in |
| edit.data.frame() (and fix() on data frames) is now allowed. |
| |
| o gctorture() did return a value although documented not to, that of |
| gcinfo. 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 Frequency |
| if freq=FALSE. The `intensities' component of the result is |
| now 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 than |
| once in lib.loc. |
| |
| o lm.fit & lm.wfit (and hence lm) now give understandable error |
| messages 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 complex |
| data. |
| |
| 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 interaction |
| terms, as terms() and the prototype do (PR#701). |
| |
| o old.packages() now sorts version strings correctly by |
| splitting at "." and "-". |
| |
| o optim() has several new precautions against bugs, one of which was |
| an infinite loop in the L-BFGS-B method if the derivatives |
| were inaccurate (or if numerical derivatives were used and the |
| problem 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 noncentrality |
| parameters, 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 bounding |
| boxes, but the space was not actually used in typesetting the |
| expression (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 and |
| hence 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(), so |
| that simultaneous instances of postscript/xfig/bitmap can use |
| different values for `family'. |
| |
| o postscript() no longer uses the initclip operator, which |
| was against the EPSF specifications and broke inclusion of |
| graphics in some documents. |
| |
| o In postscript(), cleaned up the internals to fix some |
| cases where it was unclear whether a variable was meant to set |
| or track device status. |
| |
| o In some cases, emitted postscript violated the PS Document |
| Structuring Conventions since some settings were carried over from |
| one page to the next. (Caused breakage when turning |
| antialiasing 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 preferred |
| style 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 header |
| line 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 formula |
| when 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 official |
| 2-letter abbrevations. |
| |
| o strsplit() had two memory leaks. |
| |
| o tcltk interface now has better string quoting and no longer breaks on |
| strings with unbalanced braces |
| |
| o tcltk callbacks used to include a "%..." argument on the call if the |
| callback 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' only |
| occurred if they were called by that name, and in particular |
| not if used in lapply or called as .Primitive("c"). It now |
| always occurs. |
| |
| o Method dispatching now forces evaluation of promises, so |
| autoloading works with methods. |
| |
| o c(0.099999994, 0.2) prints as 0.1 0.2 not 0.10 0.20 after |
| correcting the precision calculations. |
| |
| o Internal function fprec was overflowing for numbers around |
| 1e-305. |
| |
| o [internal] .C("strsignif",*) doesn't use fixed size strings anymore |
| (possible overflow). |
| |
| o ff[i] <- r now works for formula (and potentially other |
| non-standard) objects ff. |
| |
| o Errors in argument matching could cause crashes if error |
| handler 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) and |
| all(NULL == NULL) is now TRUE. |
| |
| o polylines with more than 64K pieces will now work on more X |
| servers 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 correctly |
| in all cases. |
| |
| o make install could fail if there were no shared libraries to |
| install (e.g. on vanilla Solaris). |
| |
| o Rd's \describe{} constructs are converted better to text |
| output, 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 as |
| the "|" 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 the |
| body was a single constant. |
| |
| |
| ************************************************** |
| * * |
| * 1.1 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.1.1 |
| |
| |
| NEW FEATURES |
| |
| o data(), example() and help() now search the loaded packages, then |
| in their .lib.loc argument, the latter as pre-0.99.0. See |
| their 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 normal |
| path and this is TRUE then a search is made of all packages |
| for possible matches. |
| |
| o Improved detection of Tcl/Tk at configure time. One can either |
| set configure variables TCLTK_CPPFLAGS and TCLTK_LIBS, or give |
| the locations of the tclConfig.sh and tkConfig.sh scripts via |
| the `--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 decimal |
| separator (SPSS/Windows and probably others want commas in |
| continental European locales). |
| |
| o Advance warning: save(, oldstyle=TRUE) will no longer be |
| available after this release. |
| |
| o Symbols can now be coerced to expressions, making |
| as.expression(quote(a)) work |
| |
| |
| BUG FIXES |
| |
| o 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 a |
| notch 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 negative |
| values (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 no |
| offset. They are now documented somewhat. |
| |
| o Some HTML files used src="R.css" instead of href="R.css" causing |
| some browsers to ignore the style sheet. `R.css' now passes the |
| w3c CSS validator and gives the intended results with Internet |
| Explorer. `R.css' is copied to all library directories. |
| |
| o The data editor no longer crashes when entries contain more than |
| 45 characters, and works correctly if the field width is |
| larger than the window width. |
| |
| o Recording plots used to ignore graphics events before the last |
| replay. |
| |
| 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 a |
| function, such as dev2bitmap(). |
| |
| o anova.glmlist works correctly with decreasing models and |
| test="F" now gets the correct residual df. |
| |
| o Functions created (not just edited) with fix() now get |
| environment .GlobalEnv not the body of fix. |
| |
| o Rdconv was ignoring OS-specific parts of the files with some |
| Perl 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, so |
| the 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 the |
| HTML file in ~/.R if help.start() has been run recently in the |
| session, so the style sheet and hyperlinks should now be found. |
| |
| o dotplot's arguments `color' and `lcolor' are now interpreted |
| correctly if they are vectors of length > 1. (It is not clear |
| from 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 default |
| for the quote= argument got set wrongly when it was |
| introduced. They are, however, turned off when using sep="\n", |
| since you probably want unprocessed lines of text in that |
| case. |
| |
| o fixed buglet where scan() would double a character following a |
| terminating quote symbol. |
| |
| o kmeans was failing on vector inputs (although not documented |
| to accept such). |
| |
| o fixes in predict.lm (John Maindonald) |
| |
| o NCOL got confused by 1D arrays, which it now reports have 1 |
| column 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 (PR |
| |
| o data editor froze on empty data frame, and more generally on |
| zero-length cols. |
| |
| o data editor did not handle factors properly in numeric-edit |
| mode. |
| |
| o table() misbehaved on empty (or all-NA) data |
| |
| o data editor now handles empty data frames, allowing data entry |
| to begin with dd<-edit(data.frame()) or |
| dd<-data.frame() ; fix(dd) |
| |
| o plotting math expressions when specified as a LANGSXP or |
| SYMSXP 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 which |
| is 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 the |
| non-robust fit) in the case of a fit with family = "symmetric" |
| and surface = "direct" and prediction with se = FALSE. The |
| fitted values were missing for such fits. |
| |
| o Better rendering of ^ and ~ in latex in \code{} (and they should |
| not 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.0 |
| |
| |
| NEW FEATURES |
| |
| |
| o There are several changes to the compile and link flags, and |
| an attempt is made to use /usr/local/include and |
| /usr/local/lib on all platforms. Please read config.site and |
| INSTALL if you have set flags for previous versions. |
| |
| o New package tcltk, providing interface and language bindings for |
| the Tcl/Tk graphical interface toolkit. This makes it possible |
| to do some rather nifty things with buttons and entry fields |
| and so forth in very few lines of code. It is still somewhat |
| experimental so don't go churning out thousands of lines of |
| GUI code and then blame us for changing the API later on. It does |
| not 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, and |
| option `--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/gnome |
| and 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 called |
| gtk(); the x11() device from the X11 support can also be used. |
| (The gnome() device remains unreliable, and is by default |
| unavailable.) |
| |
| All GNOME support now installs in R_HOME/gnome to make it |
| easier 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 SIGUSR2 |
| to quit and save without running .Last and on.exit |
| expressions. |
| |
| o Added ability to use the graphics device driver to perform |
| horizontal justification of strings. This is used in the |
| x11(), windows(), postscript() and xfig() drivers and will |
| lead to more accurate placing of centred or right-justified |
| strings. |
| |
| o Formulas created with the tilde operator now contain the |
| environment in which they were created. The environment of a |
| formula can be accessed with the environment() function. This |
| facility is still experimental; it is intended to help |
| simplify writing modeling functions. |
| |
| |
| o $ and $<- are now generic functions. |
| |
| o add1.glm() and drop1.glm() now allow test="F", which is |
| appropriate for models with estimated dispersion. |
| |
| o approx() and approxfun() have an extra argument ties= to control |
| handling of tied x values |
| |
| o 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" turns |
| tick drawing on and off (on by default). Additional arguments |
| line, 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 summary |
| statistics for the boxes (changed from a list of elements one for |
| each 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 translation |
| in character vectors, and tolower() and toupper() for converting |
| alphabetic characters to lower-case and upper-case, respectively. |
| |
| o coplot() has new option subscripts=TRUE to pass the indices |
| to 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 called |
| when a package is detached. |
| |
| o New function dev.copy2eps() copies the current device to an eps |
| file, taking the size from that of the device. |
| |
| o dev.print() now prints if possible, and takes the size from |
| the device being copied. |
| |
| o edit() or fix() applied to a numeric or character matrix now |
| uses 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 they |
| are 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 been |
| changed for consistency across methods. For `binomial' and |
| `poisson' families the dispersion is always taken as one. |
| For `quasibinomial' and `quasipoisson' families it is always |
| estimated (by residual chisq/residual df). |
| |
| o Using "~" when specifying lib.loc (for example to help() or |
| library()) is now supported. |
| |
| o image() has a new argument "breaks" and divides the zlim range |
| into 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 true |
| by 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 plotting |
| it 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 a |
| logical (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 the |
| formula before searching for a plot method for the right-side of |
| the formula. |
| |
| o New bitmap devices png() and jpeg() on Unix/X11. (They were |
| already 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 test |
| for 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() and |
| friends. |
| |
| o Functions recordPlot() and replayPlot() save a plot to an R |
| variable 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(), and |
| new function stopifnot(.) -- to be used in "make check". |
| |
| o str(.) has a new optional argument "nchar.max = 128" and truncates |
| strings longer than that. Also eliminated a few minor glitches. |
| |
| o The symbols() function is now implemented. |
| |
| o New function termplot() with similar functionality to |
| plot.gam() in S. |
| |
| o The parameters to title() which specify the labels may now |
| be specified as a list containing the parameter together |
| with additional modifying par values (cex, col, font) which |
| affect just that label. |
| |
| title() also has new line and outer arguments which provide |
| functionality which matches that in axis(). |
| |
| o New functions which.min() amd which.max(). |
| |
| o The Wilcoxon and Ansari-Bradley tests now optionally return |
| confidence intervals for the location or scale parameter of |
| interest. |
| |
| 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 directory |
| src/nmath/standalone. |
| |
| o The trace() function has two new features. Giving where= as a |
| function name allows tracing of functions called from a |
| namespace. A new argument edit= allows inserting arbitrary |
| tracing code in the function. See the online help for |
| details. |
| |
| o Namespaces and S4 classes/methods should work better |
| together. Generic function and class definition objects are |
| used in many places where the name of the function or class |
| was used before, which caused problems for non-exported objects. |
| |
| |
| BUG FIXES |
| |
| o 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 base |
| package was loaded: some functions in the base package had |
| the 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 syntax |
| error (caused segfault on Linux). |
| |
| o The X11 data editor scrolls cells and so allows more than ca 10 |
| characters to be entered. Several interface/redraw errors |
| have 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 where |
| sensible (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 conditioning |
| variables. |
| |
| o count.fields() and read.table() now have the same default |
| quote = "\"'". |
| |
| 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 incorrectly |
| returning character information, so in particular `*' was |
| wrongly 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 if |
| loading 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 data |
| frames. |
| |
| 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 environment |
| and R_PRINTCMD found at build time. |
| |
| o postscript() now makes use of kerning information in computing |
| string 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 with |
| no fitted effects. |
| |
| o qnorm() is now based on AS 241 instead of AS 111, and should |
| give precise results up to 16 digits precision. |
| |
| o rgeom(, prob=1) gives 0 rather than NA |
| |
| o rpois(*, lambda) now works when lambda > .Machine$integer.max |
| |
| o 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' argument |
| for 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 (rather |
| than using latex). |
| |
| o Support for Rd conversion to Sd has been reinstated (it was |
| unintentionally 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 not |
| necessarily used in R. Where "hypot" is available pythag |
| just 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 than |
| 100 entries now contain only the letters which are really |
| first letters of at least one entry. |
| |
| |
| |
| CHANGES IN R VERSION 1.0.1 |
| |
| |
| BUG FIXES |
| |
| o 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 options |
| show.signif.stars and show.coef.Pvalues are not set correctly. |
| |
| o x <- list(a=1, b=2) ; x["c"] <- 3 now (again) stretches the list |
| rather 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 have |
| non-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 warning |
| messages and only one was accepted. |
| |
| o The autoload()s during startup are "wrapped" such |
| that conflicting objects don't break startup. |
| |
| o cor.test(*, meth="spear") {pkg ctest} now works (again) for n <= 6 |
| |
| o scale = 0 in biplot.princomp() now works. |
| |
| o The scores given by princomp(, cor = TRUE) and the rotated |
| values given by prcomp(, scale = TRUE) are now computed from the |
| scaled 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 should |
| work 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 character |
| vectors. |
| |
| o R would try to save the readline history at the end of |
| non-interactive sessions, causing crashes on some systems. |
| |
| o Subtle roundoff problems caused arrays to be allocated short in |
| loess.c in some cases, leading to segfaults. |
| |
| o Document that postscript(file="") sends the output directly to |
| the default printer. |
| |
| o ts.union(, dframe=TRUE) had a long-standing typo, now works. |
| |
| o save(, ascii=TRUE) had problem with octal escapes in strings |
| when there was a digit following, should work now. |
| |
| o matpoints() and matlines() now also have a "type =" argument |
| with defaults "p" and "l", respectively; PR#506. |
| |
| o The new Perl 5.6 broke our version-detection mechanism. A |
| better one has been inserted. |
| |
| o X11(colortype="gray") failed to work on 8-bit screens, and |
| more generally when colour allocation failed X11() did not |
| revert to monochrome correctly (and did not say it was doing so). |
| |
| It was not documented in the help that to change the X11 |
| colortype one needs to close all open X11 devices. |
| |
| o loessf.f in modreg defined DSIGN unecessarily and this caused |
| a 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, more |
| realistically, when mistyping data.entry(x,y) as |
| dataentry(x,y)) |
| |
| o fixed special cases that caused bad behavior for methods, |
| particularly with nested use of primitive operators when |
| setMethod had been called. Also fixed some situations that |
| prevented caching methods (and therfore slowed down dispatch |
| seriously) in similar cases. |
| |
| o Packages can now have non-exported classes. Previously this |
| failed because computations could not find methods for objects |
| from private classes. Adding a "package" attribute to an |
| object's class attribute (along with a large number of changes |
| to use the package information) fixes this for most cases. |
| (Methods for primitive functions still use global information |
| about classes because of imposed efficiency constraints on |
| primitives.) |
| |
| o untrace() now works with package::function-style references. |
| |
| |
| ************************************************** |
| * * |
| * 1.0 SERIES NEWS * |
| * * |
| ************************************************** |
| |
| |
| CHANGES IN R VERSION 1.0.0 |
| |
| |
| NEW FEATURES |
| |
| o The entry points [dpq]norm no longer exist: the header file |
| R_ext/Mathlib.h must be used and such code re-compiled. |
| |
| o Header files in R_ext must be given explicitly as e.g. |
| "R_ext/Mathlib.h". |
| |
| o New function log1p(x) := log(1 + x) , accurate for |x| << 1. |
| |
| o HTML searches can now select between any combination of |
| titles, keywords and object names. The keyword list of |
| SearchEngine.html is automatically built from KEYWORDS.db. |
| Missing links are now resolved using the search engine. |
| |
| o A data subdirectory of the working directory will be |
| searched for data, by default after all the loaded packages |
| (including base). |
| |
| o Data directories can now be zipped as Rdata.zip, provided a |
| list of contents is provided in file `filelist'. |
| |
| o New function try(expr) which provides a user-friendly wrapper |
| to restart(). |
| |
| o New function geterrmessage() to retrieve the last error |
| message, for use in try() and user's error handlers, and new |
| option "show.error.messages" to control the printing of error |
| messages. |
| |
| o persp() now labels its axes. |
| |
| o ?plotmath documents the plotting expressions facility much |
| more comprehensively, with tables in the examples. |
| |
| o New functions dump.frames() and debugger() allow post-mortem |
| debugging. See the help on debugger. |
| |
| o New functions by() and merge() to split and join data frames. |
| |
| o Generic methods now do "match before dispatch", so |
| plot(pch=2, y ~ x) invokes plot.formula. Notice that this will |
| break user code if it has renamed the dispatch argument and |
| uses the original name for a different argument. |
| |
| o Long-named command-line options also allow `--name VALUE'. |
| |
| o arima0() now uses optim() rather than nlm(), and is thereby |
| normally faster and gives more accurate solutions. Perhaps |
| more importantly, it fails to converge much less often. |
| |
| o Enhanced pairs() function allowing separate upper, lower and |
| diagonal panel functions and control of diagonal labels. |
| (Much of this was contributed by Jens Oehlschlaegel-Akiyoshi.) |
| |
| o Links to R objects in other packages in help files can now be |
| specified explicitly as \link[pkg]{topic} or |
| \link[pkg:maintopic]{topic} |
| |
| o optim() has a new simulated annealing method contributed by |
| Adrian Trapletti. |
| |
| o Hershey vector fonts are available in text() and contour(). |
| Documentation for Hershey vector fonts is in help(Hershey). |
| |
| o The HTML function indices (for packages and for all installed |
| functions) and the index to the reference manual now omit |
| methods for generic functions if they would immediately follow |
| the generic and refer to the same file. This reduces the |
| clutter considerably. |
| |
| o New functions points.formula() and lines.formula() to supplement |
| plot.formula(). The latter has been enhanced so that all |
| arguments are now evaluated in the supplied data frame and all |
| subsettable arguments are subsetted. Notice that the data= |
| argument can no longer be given as a positional argument but |
| must be given in keyword form. |
| |
| o The behaviour of pmatch() has been changed to be S-compatible: |
| in particular the meaning of duplicates.ok=TRUE has changed. |
| The help for pmatch and charmatch now gives more precise |
| descriptions, including of their differences. |
| |
| o print.hclust(), hclust() and dist() now store the method |
| that has been used. |
| |
| o If there are unmatched function argument(s), the first found |
| is named in the message, for example |
| `unused argument(s) (xlabel ...)'. |
| |
| o Conversion from Rd to raw nroff is no longer available. |
| |
| o text() now accepts vector "col", "cex" and "font" arguments. |
| |
| o "default" is now a valid argument to RNGkind(). |
| |
| o nlm() and optim() will now give up immediately they try to |
| step to a non-finite value: nlm at least would go into an |
| infinite loop. |
| |
| o "mostattributes(obj) <- value" utility useful for careful |
| attributes' inheritance; e.g. for fixing pmax/pmin (see below). |
| |
| |
| BUG FIXES |
| |
| o (0.99.0a) The internal code for strsplit no longer destroys |
| other internal structures, e.g. postscript file output on |
| Linux. |
| |
| o (0.99.0a) nlm() no longer segfaults with Hessian specified. |
| |
| o (0.99.0a) Gnome version plotmath works, kind of |
| |
| o (0.99.0a) edit.data.frame() now handles character vectors |
| better, provided they were generated with I(). |
| |
| o (0.99.0a) Attempt to special-case print-buffer allocation |
| with just a format argument was abandoned, since there is |
| no portable way of doing it and it caused compile problem |
| on Alpha. |
| |
| o tempfile("") now works on all Unix platforms, and |
| tempfile("a b c") returns a single name (with spaces in). |
| The file names are now unique across processes (Unix), are |
| guaranteed not to exist and very likely to be unique within |
| an R session. |
| |
| o The search semantics of data(), example() and help() have changed |
| (see their help pages). In particular, they will normally |
| look in the package which was loaded, even if it is not in |
| one of the libraries given in .lib.loc. Autoloads are no |
| longer included in the search (as they searched whole packages, |
| not just the autoloaded objects). |
| |
| o The documentation for .Rd files said & must be entered as \& |
| but only the unescaped form was processed correctly. Now both |
| are accepted but & is preferred. |
| |
| o list.files now skips non-existent/unreadable directories with |
| a warning, rather that failing with an error. |
| |
| o Lots of help examples now tidy up the files they created, and |
| detach data frames and libraries they attach. |
| |
| o library(help=foo) lists only contents of first version if |
| multiple matches are found on lib.loc. |
| |
| o round(2.345e-99, 100) now works (not giving 0). |
| C functions fprec() and fround() [= R's signif() and round()], |
| now use R_pow_di(10.0, n) which is clean and more efficient. |
| This changes some results in the least significant bits. |
| |
| o rpois sometimes had problems with mu=0, now special-cased |
| |
| o Rare memory overrun in rpois fixed. |
| |
| o --nsize and --vsize arguments to R CMD check now work. |
| |
| o plot.stepfun had renamed the dispatch argument and used the |
| original name "x" for a different argument which broke on the |
| new `match & dispatch' code. Changed to "xval". |
| |
| o The return value for par() was incorrectly documented, and in |
| consequence cpgram() was not re-setting "pty". |
| |
| o package.dependencies() printed unnecessary debugging messages |
| (version comparison): these have been removed. |
| |
| o backslashes in examples in help files are now converted |
| correctly to latex. |
| |
| o qchisq with non-centrality parameter now does something. |
| |
| o Greek symbols are now converted correctly in HTML help (but |
| only rendered correctly on a few browsers). |
| |
| o rbind(x, y) works when x has no columns. |
| |
| o \tabular in Rd files is rendered better in latex, and long |
| tabular material is now acceptable (and split over pages). |
| |
| o evaluation depth wasn't properly reset by "next" |
| |
| o Old (pre-0.63.1) .Random.seed would cause problems if used. |
| |
| o Row indexing of data.frames by characters (e.g. y["ab", ]) |
| was wrong, as pmatch was not S-compatible. |
| |
| o Contour labels used to be rounded to integers. |
| |
| o Calling rbinom() repeatedly with the same p but different n |
| gave incorrect results. |
| |
| o Rd2contents assumed the \name field was the file name, so |
| searches could lead to non-existent links. |
| |
| o Assigning functions to list elements is not longer disallowed. |
| |
| o Unified usage statement to R CMD xxx for all commands |
| |
| o Using duplicated new string indices in [<- caused a crash on |
| some platforms, e.g. x <- 1:2; x[c("3", "3")] <- 3; x. |
| |
| o rle() can now handle character vectors, as documented. |
| |
| o print.default failed to reset its settings, so, e.g. na.print |
| could persist when printing a list. |
| |
| o [cr]bind could sometimes return an invisible value. |
| |
| o axis() and rug() sometimes extended the axis line too far. |
| rug() always clipped x values to the plot region, but now |
| admits to doing so with a warning. |
| |
| o plot() and axis() got into trouble with very small relative |
| ranges: these are now required to be at least 100x the machine |
| precision. |
| |
| o split.screen(, erase=TRUE) failed to create a new plot, so |
| failed if it was used on a postscript device before other plots. |
| |
| o plotting with lwd = 0 also set the dash length to 0: now |
| dash lengths are scaled up for lwd > 1 but not reduced for |
| 0 <= lwd < 1. |
| |
| o plotting a " " vertically caused an X11 error with some fonts, |
| (notably URW fonts on RedHat) causing plot.lm to crash R |
| |
| o F distributions with huge DF now behave more sensibly |
| |
| o Crashes could occur if there was an error in inline |
| parameters, because the call was not being recorded. It is |
| now. |
| |
| o Title field of DESCRIPTION now overrides TITLE file. |
| |
| o R now reports `50 or more warnings', not just 50, as it only |
| displays the first 50. |
| |
| o Resetting the RNG state resets the state of the Box-Muller |
| generator too. |
| |
| o Pointer protection bug in load() code. |
| |
| o Assignment with unknown string index caused memory corruption |
| when used on matrices. |
| |
| o It is now possible to call Fortran routines d1mach and 11mach |
| on platforms which do not append underscores. |
| |
| o Additions to plots by identify() and locator() were not being |
| recorded, and so did not appear when a plot was copied or |
| printed. |
| |
| o The defaults for `na.action' arguments were inconsistently |
| documented. In R the default is taken from the |
| options(na.action) setting, and that defaults to `na.omit'. |
| If there is no `na.action' setting, the default is `na.fail'. |
| For consistency, the default for replications() has been |
| changed. |
| |
| o Fix cases with lambda==0 in Poisson distribution |
| |
| o demo(is.things) had been broken by the introduction of is.element. |
| |
| o palette() didn't check for overflow and was limited to 256 |
| colors, so palette(colors()) would segfault. Limit increased |
| to 1024 and check inserted. |
| |
| o C functions fprec() and fround() [= R's signif() and round()], |
| now use R_pow_di(10., n) which is clean and more efficient. |
| This changes some results in the least significant bits. |
| |
| o pmin(c(a=1), 2:3) now works {and pmax(.) too}. |
| |
| |
| ********************************************************* |
| * * |
| * News of 0.99.0 and earlier is in file 'NEWS.0' * |
| * * |
| ********************************************************* |