1 Dear Emacs, please make this -*-Text-*- mode! 2 3 This file covers NEWS up to the release of R-1.0.0. 4 See 'NEWS.1' for subsequent changes. 5 6 7 ************************************************** 8 * * 9 * 0.99 SERIES NEWS * 10 * * 11 ************************************************** 12 13 14 CHANGES IN R VERSION 0.99.0 15 16 17NEW FEATURES 18 19 o The ``Introduction to R'' manual, in doc/manual. 20 The ``Writing R Extensions'' manual is much enhanced for 21 this release. 22 23 o The format for save/load has been changed. Workspaces and 24 objects saved in earlier versions can be loaded into this 25 version, but not conversely. Use save() or save.image() with 26 argument oldstyle=TRUE to save in the old format if you need to. 27 28 o The header files for C code have been reorganised. The 29 preferred header file for user code is now "R.h", and 30 ancillary files such as Arith.h now need to be referred to 31 as "R_ext/Arith.h". The `Writing R Extensions' manual now 32 contains the beginnings of a description of the public API and 33 how to use it. 34 35 o Many of the exported symbols have been remapped or hidden. This 36 means that code using Rdefines.h or Rinternals.h or Mathlib.h 37 will need to be re-compiled, and code using Applic.h may do 38 so. 39 40 Many packages will need to be re-installed for use with this 41 release. 42 43 o The random number generation interface has changed, although 44 saved .Random.seed's will work unchanged. The default 45 generator is now Marsaglia's multicarry, and the Mersenne 46 Twister GFSR and Knuth's Fibonacci subtraction are also 47 available. The type of normal generation can be selected by 48 RNGkind() (and is encoded in .Random.seed). 49 50 The new function set.seed() which uses a single integer to set 51 the random number seeds is now the recommended way to do so. 52 53 It is now possible for a user to plug-in a new RNG written 54 in C: consult ?Random and ?Random-user for the details. 55 56 o All the DPQ {probability density quantile} functions have new 57 arguments, "lower_tail = TRUE" and "log{_p} = FALSE". This allows 58 more precise results when values would be close to 0 or 1. 59 60 o R CMD Rd2dvi has new options --pdf, --title and --output. 61 62 o New fields Date, URL and Title in the DESCRIPTION file of 63 packages. The Title field replaces the separate TITLE file of 64 packages, which is no longer necessary. 65 66 o residuals.lm() has a "type" argument, as S does. 67 68 o The underlying code for nlm has been translated from Fortran 69 to C and made re-entrant (changes contributed by Saikat DebRoy). 70 71 o optimize() can now be used recursively. 72 73 o New suite of optimization methods optim(), covering 74 Nelder-Mead, BFGS quasi-Newton and conjugate-gradients methods 75 for unconstrained minimization and maximization with and 76 without derivatives. 77 78 optim() also allows box constraints (interval bounds on 79 individual variables) in its limited-memory BFGS option. 80 81 o R now compiles in the GNU version of regex, so regular 82 expressions (grep, sub, gsub, regexpr, "pattern" in ls) are 83 always available. The class of regular expressions supported 84 is now slightly wider on some Unix platforms. 85 86 o package ctest (for classical tests) is now part of the base 87 distribution, and also contains chisq.test, prop.test and 88 t.test which previously were in package base. These three 89 functions are auto-loaded from ctest. 90 91 o New utility `R CMD build' for building add-on packages along 92 with some useful testing and cleaning up. 93 94 o Conversion of .Rd help files to text format is done in Perl, 95 and no longer requires nroff. This makes the conversion 8-bit 96 clean and more accurate. 97 98 o Building help for a package now removes help files that no 99 longer exist in the source. 100 101 o strsplit() now uses split regexps, and no longer insists on 102 splitting into non-empty tokens. 103 104 o Long-named options with arguments such as `--vsize' now use the 105 `--name=VALUE' form; the old `--name VALUE' is deprecated. 106 The old-style command line options `-v' and `-n' are now defunct. 107 108 o par("cxy") { == par("cin")/par("pin") in user coordinates} 109 for S compatibility. 110 111 o If R_PAPERSIZE is not specified otherwise, configure now tries 112 to compute it by calling paperconf. 113 114 o The deprecated alternative RPROFILE is no longer accepted: use 115 R_PROFILE instead. 116 117 o Added setequal() for set equality. 118 119 o First argument renamed to "package" for library(), require(), 120 provide(). 121 122 o model.frame() now accepts data= arguments that can be coerced to 123 data frames. 124 125 o Help files can now contain \describe groups. 126 127 o Hyperlinks in help files can now use LaTeX special characters. 128 129 o rstandard() now also works for glm objects. 130 131 o glm drops 0-weight observations when fitting so that the 132 output is compatible with lm.influence() and plot.lm(). 133 134 o New function ftable() for creating and manipulating flat 135 contingency tables. 136 137 o New function cutree() for cutting hclust trees in package 138 mva. New functions rect.hclust() and identify.hclust(). 139 140 o Under Unix, the default editor is obtained from the environment 141 variables EDITOR or VISUAL if either is set. 142 143 o New command line option `--gui' to specify the graphical user 144 interface under Unix. Currently, possible values are `X11' (the 145 (default) and `GNOME', provided that GNOME support is available. 146 Command line options `-g' and `--gnome' are defunct. 147 148 o power.t.test() and power.prop.test() functions added for power and 149 sample size calculations. 150 151 o edit() is now generic and a new edit.data.frame() function 152 calls up the spreadsheet data editor. This is still rather 153 rudimentary, since the data editor really only knows about 154 numeric and character vectors. 155 156 o Modifications to the data editor so that one can use ESC to 157 quit a partial cell entry and entering an empty cell causes 158 the element to be set to NA. 159 160 o prop.table() and margin.table() functions (these are *really* trivial). 161 162 o R INSTALL checks the Depends field of DESCRIPTION if the 163 currently running version of R meets an R 164 dependency. old.packages() reports only packages conforming 165 to the current version of R. New function 166 package.dependencies() for parsing and checking dependencies. 167 168 o options("expressions") now does something, and the evaluation 169 depth is checked on all platforms (not just Macintosh). This 170 will catch infinite recursions gracefully. 171 172 o The default number of cons cells (`nsize') is now 350k (it 173 was 250k). This reflects the added base code and packages, 174 and increases memory usage by about 2Mb (on a 32-bit machine). 175 176 o Some simple multiple comparison procedures: p.adjust() for 177 generic adjustment of a set of p values by variants of the 178 Bonferroni method; pairwise.t.test, pairwise.wilcox.test, 179 pairwise.prop.test for pairwise comparisons of grouped data 180 and proportions. 181 182 o Error / warning calls with a long description of the call are 183 split into two lines. (This helps avoid scrolling in the 184 Windows GUI.) 185 186 o lapply() is now internal and substantially faster (7% overall 187 speed-up on the tests for the base package). 188 189 o apply() no longer names the output dimensions unless FUN returns 190 a result with names, and the same names for every result. 191 192 o contour() can (at last) label contours by level. 193 194 o persp() labels its axes. 195 196 o scan() and read.table() now have a dec= argument to set the 197 decimal point character. If sep= is set, quoting of strings is 198 now possible and follows the conventions for comma-separated 199 files. This should make it easier to read the "continental 200 CSV" format (fields separated by semicolon and using comma as 201 decimal point). The set of quoting characters has also been 202 made optional. Variants of read.table(), read.csv() and 203 read.csv2() have been defined 204 205 o HDF5 support is gone from the R distribution, and provided by an 206 add-on package available from CRAN. 207 208 o New function getOption() for retrieving the value of a single 209 option. 210 211 o read.table.url() and related functions now use download.file, 212 which has an extra "socket" method for direct HTTP socket 213 connection. download.file has new option ``quiet''. 214 215 o pairs.default() has an oma argument to allow users to override 216 the internal setting of that graphics parameter. 217 218 o princomp() in package mva allows the user to specify the 219 covariance matrix (and hence use, e.g. cov.mve). 220 221 222BUG FIXES 223 224 o svd(matrix(2,1,0)), 225 arma0f(NULL), cancor(F,F) and prcomp(F[F]) no longer segfault. 226 227 o loess.smooth(F[F],F[F]) and supsmu(F[F],F[F]) no longer segfault. 228 229 o save(1, file = ""[F]) no longer segfaults. 230 231 o stop(list()) and warning(list()) no longer segfault. 232 233 o system(""[F]) and save(1, file = ""[F]) no longer segfault. 234 235 o Overflow of the pointer protection stack is handled correctly 236 237 o predict.glm(, type="link", se.fit=T) works 238 239 o str() now works with Surv(.) objects from library(survival5). 240 241 o all.equal(-Inf, -1e5) now gives "Mean absolute difference: Inf" 242 instead of "Mean relative difference: NaN". 243 244 o strsplit fix broke copy.url. 245 246 o 0 ^ -1 == Inf and min(NA, NaN) is now always NA 247 248 o R CMD xxx sets $R_HOME/bin to be first in PATH 249 250 o Added more warnings to update.packages & friends. New function 251 old.packages for better control of update.packages. 252 253 o Adding matrices to data frames now happens column by column as 254 documented, so character or logical matrices generate factor 255 columns. 256 257 o Formulae containing interactions with the response were 258 handled incorrectly by model.matrix, giving wrong answers or crashes. 259 260 o anova(lm(.)) with 0 weights now works. 261 262 o plot.lm(), dffits(), covratio() now do the right thing for weighted 263 lm regression. 264 265 o formatC(as.integer(c(1,0,NA))) now works. PR#394, thanks to Jens O.-A. 266 267 o format.char(.) is much faster for long vector argument [Jens O.-A.] 268 269 o \enumerate now enumerates in text conversion of .Rd files. 270 271 o glm() no longer fails with names<- errors in cases where 272 observations with fits on the mu.eta boundary have been dropped. 273 274 o Deviance residuals could be NaN instead of 0 by rounding error. 275 276 o shapiro.test(x) now gives better error messages (eg. x=rep(1,5)) 277 and doesn't print ANYTHING anymore (in some cases). 278 279 o mode(as.formula(paste("~", paste(1:50, collapse="+")))[2]) now works. 280 281 o glm() now handles cases with numerically 0 or 1 fitted values in 282 binomial and numerically 0 in poisson correctly. (Previously 283 these observations were dropped even though the variances were 284 also numerically 0.) 285 286 o (-4 + 0i) ^ (1/2) now gives 2i. 287 288 o system.time() now does sensible things in the non-HAVE_TIMES 289 case, and that and proc.time() have better documentation. 290 291 o A couple of bugs in the data editor spreadsheet have been 292 eliminated. 293 294 o Elapsed time in proc.time() is no longer rounded to whole 295 seconds under Unix. 296 297 o Assigning character vectors to subsets of data frames now 298 works correctly (it used to assign the numeric codes of factors). 299 300 o Extensive enhancements and corrections to the help pages. 301 302 o The possibility of buffer overruns during printing has been 303 much reduced, and eliminated on systems with vsnprintf. 304 305 306 ************************************************** 307 * * 308 * 0.90 SERIES NEWS * 309 * * 310 ************************************************** 311 312 313 CHANGES IN R VERSION 0.90.1 314 315 316NEW FEATURES 317 318 o rect(.) has `lwd' argument. 319 320 o legend() has a `adj' argument and has been streamlined (and fixed up). 321 322 o `unname' convenience function [experimental data.frame behavior]. 323 324 o `examples' sections have been added to the documentation 325 for most of the data sets in the base library. 326 327 o update.packages & friends have new argument contriburl for 328 incomplete CRAN mirrors. Package bundles such as VR can be 329 directly installed both from the shell and from inside R. 330 331 o RLIBS is no longer accepted as well as R_LIBS (which has been 332 the documented form since 0.65.0). 333 334 o demo(nlm) has examples of using analytical gradients and 335 Hessians. 336 337 o .Platform$OS.type is standardized to be `unix', `mac' or `windows' 338 339 o setting cex in matplot(matrix(1:25,5), cex=1:5) now works 340 341 o ar.ols() has separate demean and intercept arguments, uses 342 internal scaling for greater accuracy. 343 344 o xxxPR functions allow NCHAR=-1 for S compatibility. 345 346 o `Rcomplex' is preferred to `complex' (a future reserved word 347 in C) for R complex objects passed to C. 348 349 o new function dir.create() for platform-independence. 350 351 o help.search() creates a database for faster searching later in 352 the R session. 353 354 o density() allows for more kernels and has a new argument 355 `give.Rkern' to access the relevant kernel property. 356 357 o multivariate methods for ar: "yule-walker" (now in C) and 358 "burg" (new) contributed by Martyn Plummer. 359 360 o New data sets `HairEyeColor' (hair and eye color of statistics 361 students), `Titanic' (survival of passengers on the Titanic), 362 and `UCBAdmissions' (student admissions at UC Berkeley). 363 364 365BUG FIXES 366 367 o Many help pages have been revised and enhanced. 368 369 o predict.glm() works again with type="link". 370 371 o subscripting arrays and matrices no longer loses the names of 372 the dimnames vector. Transpose also preserves the names. 373 374 o examples in help files containing \testonly are no longer 375 (partially) duplicated. 376 377 o is.numeric() of a factor is now FALSE 378 379 o prevent a segfault in plotmath 380 381 o f <- get("function"); f(,); f(F,F) now "ok" (PR#361). 382 383 o blank-line reject code in parse.dcf was wrong (Martyn Plummer) 384 385 o made filled.contour independent of pointsize. Make plot key 386 wider so there's room for a title. Touchup example. 387 388 o font size fixups for the X11 driver (mainly) 389 390 o some.list[[NA]] is NULL, following S, rather than giving spurious 391 error messages 392 393 o segfault when running out of heap 394 395 o segfault in rbind of a vector without names fixed. cbind, too. 396 397 o fixed symbol size problems with PostScript driver 398 399 o unique() & duplicated() only work for atomic vectors; 400 unique(data.frame(""[F])) doesn't segfault anymore. 401 402 o get("attr<-")(""[0],""[0]) doesn't segfault anymore. 403 404 o blunder in do_memoryprofile, causing segfault on Alpha machines 405 406 o erroneous error message in coerceToSymbol 407 408 o partial workaround for workspace restore problems. This can 409 happen if an environment on the search path is assigned to a 410 variable which gets saved. The error "unresolved node during 411 restore" is turned into a warning, allowing the rest of the 412 workspace to be restored, but the variable contains an empty 413 environment on reload. 414 415 o density(x) now works also when IQR(x) == 0. 416 density(x, window=...) now works [S compatibility]. 417 418 o prevent points from being plotted if pch, cex, or col are NA. 419 Does not apply to bg on pch 21--25 (where NA means 420 "transparent") because it would require fixes at the driver 421 level. 422 423 424 CHANGES IN R VERSION 0.90.0 425 426NEW FEATURES 427 428 o packages splines (for regression smoothing splines or 429 interpolating splines) and nls (nonlinear least squares) are 430 part of the base distribution. 431 432 o New error handling using 433 options ( error = expression(..) , warning.expr = ... ). 434 REPLACING version 0.65.1's options(error.halt = T/F) 435 436 o collected warnings before an error are no longer lost but 437 are printed after the error message (unless the error makes 438 this impossible). 439 440 o A couple of substantial graphics changes, esp. in the X11 441 driver. The scaling of symbols is now linear in cex=, rather 442 than being tied to the available font's size. The fonts on an 443 X11 device also scale linearly with cex= insofar as your X 444 server can do it. On systems with the scalable type 1 445 PostScript fonts installed, this looks particularly nice. Note 446 that the scaling is linear in the *diameter*, but quadratic in 447 area. The distance between lines of margin text in the X11 448 device is now proportional to the size given to 449 x11(pointsize). 450 451 452 o abline(a,b) now (again) refers to transformed coordinates on 453 plots with log-axes, so that abline(lm(log10(y)~log10(x))) 454 (say) draws a best-fitting line on a log-log plot. The earlier 455 convention (to draw a curve representing a line in original 456 coordinates) is available using a new untf= argument. 457 458 o barplot.default() has new `axisnames' (and `sub') arguments, easily 459 allowing suppression of bar labeling. 460 461 o cbind() and rbind() now actually do what deparse.level=1 implies: 462 add column/row names based on the deparsed argument, provided it 463 is a simple symbol. The behaviour is still hardcoded, though. 464 465 o gc() now reports the total sizes in Mb as well as numbers. 466 467 o New function help.search() for searching the names, titles, 468 aliases, or keywords in the help system. 469 470 o image() allows x and y to specify either the boundaries or the 471 midpoints of the cells. If the latter, the whole cells are 472 drawn, rather than the outer cells being half-sized as previously. 473 474 o NULL extra arguments to model.frame() are now treated as missing 475 (instead of an error). 476 477 o optimization with nlm() can use analytic gradients and Hessians 478 if they are supplied. 479 480 o on.exit() allows add=TRUE. 481 482 o function parse.dcf() for parsing files in debian control file format 483 (DESCRIPTION, CONTENTS, ...) 484 485 o predict.{g}lm has a type="terms" option, and residual.glm has 486 type="partial" as a step towards plot.gam(). 487 488 o New arguments to q() and quit() allow the exit status to be set 489 and the execution of .Last() to be skipped. 490 491 o New function regexpr(), similar to grep but returns the position 492 of the match in each string. (For S-PLUS compatibility.) 493 494 o scan() now supports complex numbers. 495 496 o New function sort.list, for S compatibility. (This has argument 497 partial, but always sorts completely.) 498 499 o storage.mode<- can be used to set "single", and if setting 500 anything other than "single" it removes the "Csingle" attribute. 501 502 o new function sunflowerplot(). 503 504 o New function undoc() for listing undocumented objects. 505 506 507 o User's .Rprofile now executes in global environment 508 509 o All HTML pages now use the new style sheet doc/html/R.css 510 511 o html and text files have now a header line giving the name of 512 the help file and the package. The description section now 513 comes first. 514 515 o All the standard packages have DESCRIPTION files with 516 "Priority: base", so installed.packages and 517 package.description will work with them. 518 519 o The R-external manual which describes programming for the 520 .Call and .External interfaces is in the doc/manual directory. 521 522 o New target `make pdf' in doc/manuals makes hyperlinked PDF 523 documentation. (This is experimental for this release. See 524 doc/manual/README for further details.) 525 526 527 o S.h now contains (via Rdefines.h) a MESSAGE macro, and 528 Free NULLs the pointer, for compatibility with S3 (but not S4). 529 530 o New subroutine REALPR callable from Fortran (like DBLEPR but 531 for real arguments): useful if as.single is in use. 532 533 o The cex= argument to plot() etc. can be a vector, like pch=. 534 535 o lty=0 now (again) makes lines invisible. Looks better for 536 barplot label axis. 537 538 o zero.R tries to find the zero DLL in a system-independent way. 539 540 541BUG FIXES 542 543 o apply should now work for all un-dimnamed arrays (PR#318). 544 545 o ar(..., demean=F) works more consistently across methods. 546 547 o barplot() had lower limits set at -0.01, causing trouble with 548 small heights. Switch to relative scale. (Thanks to Matt Wiener) 549 550 o density() should work better with NAs and infinite values. See 551 ?density for the current definitions of how these are handled. 552 553 o diag(x) now works (as pre 0.65.1) for 1-d arrays. 554 555 o Stored-source was dropped by dump(). 556 557 o expand.grid returns a data frame even for one arg. 558 559 o expand.grid(x) now also works for vector arguments x. 560 561 o factor(list()) or factor(character(0)) *is* now a factor 562 with valid levels(.); 563 ordered does NOT allow an `ordered' argument anymore 564 and is now defined as trivial call to factor. 565 566 o help page for gc gives correct size of cons cells (20 bytes 567 for 32-bit systems, 36 or more for 64-bit systems). 568 569 o gcinfo reports correct percentages of heap even for vsize > 200M. 570 571 o gl(6,3,12) and gl(6,3,2) now both work. 572 573 o Empty lists now deparse correctly. 574 575 o na.omit.ts and na.contiguous preserve classes. 576 577 o plot.factor {plot(<factor>)} now obeys axes=FALSE and xaxt="n". 578 579 o read.table(as.is = TRUE) would leave everything as character. 580 Now it correctly tries to convert to numeric. 581 582 o require() now has the warn.conflicts argument of library(). 583 584 o Fix problems in scan(flush = TRUE). 585 586 o scan() got confused by trailing whitespace. 587 588 o split(x,f) now works even when f is a factor with unused levels 589 (PR#294). 590 591 o mosaicplot() has a formula interface and 592 NULL instead of NA default args. 593 594 o stars() has "NULL" instead of "NA" defaults. 595 596 o str() is quite a bit nicer with factors. 597 598 o ts.union, cbind.ts, arithmetic on ts objects now allow 599 non-integer frequencies. 600 601 602 o Switch to <tt> in HTML pages since Linux Netscape mangles 603 Courier. 604 605 o When documentation is "compiled" (build-help), you now get warnings 606 for multiple (conflicting) \alias{.} or \name{.}s. 607 608 o making the reference manual with `make dvi' copes better with 609 isolatin1 characters (but not perfectly as these are not in 610 standard TeX fonts). 611 612 o Rd.sty now uses standard LaTeX constructs like \bm for bold 613 math and \url for URLs. 614 615 616 o Protect R_fopen against NULL filename in Unix. 617 618 o Math text in outer margins didn't work. 619 620 o Text clipping now works in the X11 device. 621 622 o Pixel rows sometimes got doubled in rotated text on the X11 device. 623 624 o par("yaxt") is now ok. 625 626 o Problems with realloc on some systems in AllocBuffer. 627 628 o Problem with formatReal on non-IEEE systems. 629 630 o demos/dynload/Makefile used macros that gave incorrect build 631 on some non-GNU makes. 632 633 o Windows version copes better with paths with spaces in. 634 635 o R CMD check had a typo which made the final message fail. 636 637 o R_EOF redefined as -1, was causing trouble with isxxxx contructions. 638 639 640 641 ************************************************** 642 * * 643 * 0.65 SERIES NEWS * 644 * * 645 ************************************************** 646 647 648 CHANGES IN R VERSION 0.65.1 649 650 651NEW FEATURES 652 653 o .C, .Fortran. .Call and .External now have an argument PACKAGE 654 to specify the shared library to be used for the symbol. See 655 ?Foreign. Package writers are encouraged to use this. 656 657 o On startup (unless --no-environ), first .Renviron is looked for in 658 the current directory, and then in $HOME/ (= ~/ ). 659 660 o New options(error.halt = FALSE) (default is TRUE) allows 661 continuation after an error in batch processing. 662 663 o In graphics, lty has now 6 instead of 4 predefined line types. 664 665 o as.hclust.twins() in package mva to convert (and plot) 666 objects from agnes() and daisy() of package cluster. 667 668 o R INSTALL now can directly install pkg_version.tar.gz files 669 as obtained from CRAN. New function update.packages() 670 & friends for automatically downloading packages from CRAN and 671 install them on the fly (on Unix and Windows). 672 673 o New function commandArgs() to record the command-line used. 674 675 o New arguments `local' and `now' to dyn.load. 676 677 o diag(x) now keeps names when appropriate and barfs when x is an array. 678 679 o functions source.url, url.show, read.table.url, scan.url to read 680 from an http server instead of a file. 681 682 o grid() gets useful defaults: grid lines drawn at tick marks. 683 684 o set operations union(), intersect(), setdiff() and is.element(). 685 686 o New function stars() for star plots and segment diagrams of 687 multivariate data. 688 689 o Version info now in the top-level file `VERSION'. 690 691 o barplot has a "plot = TRUE" argument and now returns locations of 692 all bars even when "beside = TRUE". 693 694 o hist has an "nclass" argument purely for S compatibility. 695 696 o Character strings can now, with most compilers, be passed 697 on and from Fortran. See ?Foreign for details. 698 699 o Functions as.single and single now have the effect with 700 .C and .Fortran of passing a numeric argument as float/REAL 701 rather than as double/DOUBLE PRECISION, by setting the 702 attribute "Csingle". See ?Foreign for details. 703 704 o Comparison of strings uses the current locale on systems where 705 this is available, and so is always consistent with the ordering 706 used by sort(). 707 708 o sapply has a new argument USE.NAMES=TRUE and now returns a named 709 result when its input was a character. 710 711 o plot.stepfun has new arguments lty and lwd. 712 713 o x labels in boxplot now handled differently, so that math 714 expressions are allowed. 715 716 o postscript() argument `onefile' now does something, and there 717 is a new paper type `special' and new argument `pagecentre'. 718 See ?postscript for details. 719 720 o Experimental function dev2bitmap() to copy to a bitmap graphics format. 721 722 723BUG FIXES 724 725 o centering in text() will be more accurate, particularly on devices 726 with full font metric information (postscript, x11, not windows). 727 728 o arguments after --no-readline in the Unix version were ignored. 729 730 o couldn't set attributes in hashed environments. 731 732 o [<-.data.frame mishandled dfr[1] <- 1 (forgotten drop=FALSE) 733 734 o sys.on.exit didn't work 735 736 o sys.parent didn't quite work either for n >= 2. 737 738 o par("mfg") was wrong, par(mfg=) switched to down columns. Now 739 par(mfrow/mfcol = c(nr, nc)) followed by par(mfg=c(i,j)) is 740 the preferred style. 741 742 o plot( <aov.object> ) failed after 2nd plot, PR#279 743 744 o Several patches for systems with long != int. 745 746 o approx failed if inputs contained NAs. 747 748 o weighted lm fits with 1 diml x failed if any weight was zero. 749 750 o lm.influence failed when there were undetermined coefficients, PR#280. 751 752 o problem with function()... inside saved functions because arg count 753 increased to accommodate stored source. (Incorrect number of 754 arguments to "lambda") 755 756 o improvements to generation of HTML help files: should work 757 better on viewers other than Netscape. 758 759 o stl in package ts could conflict with package leaps: the Fortran 760 symbols have been changed. 761 762 o help page for factor is improved and corrected. 763 764 o na.omit.ts and na.contiguous now preserve time-series attributes. 765 766 o more automatic testing ("make check") using options(error.halt=FALSE) 767 led to the elimination of dozens (!) of seg.fault possibilities. 768 769 o family quasi handles zero observations with var=mu^2 more correctly. 770 771 o dynamically-loaded libraries are searched last-loaded first, as 772 documented (under Unix it used to be first-loaded first). 773 774 o rowsum failed with a matrix and a single group (drop=FALSE needed). 775 776 o deriv(y ~ <expr>(x)) now works as well as deriv(~ <expr>(x)). 777 778 o qr over-estimated ranks in some degenerate cases. 779 qr did not work correctly if n < p and the first n cols were 780 rank-deficient. 781 782 o str() wouldn't work quite right for named characters; doesn't quote 783 symbols anymore. 784 785 o Colour conversion (rgb, gray, hsv) truncated doubles and so 786 gave machine-dependent results on the examples. It now rounds. 787 788 o cat() now admits again that it can't handle lists instead of 789 "random" segfaulting. 790 791 o More accurate rounding (including rounding to even) on platforms 792 without rint (e.g. Windows). 793 794 o qgeom() is now left-continuous with a tolerance, and so the 795 example on the help page will be platform-independent. 796 797 o pretty() has been changed to use tolerance around integers and 798 so will be more platform-independent. The exact output has 799 probably changed on all platforms for some input. 800 801 o image() & filled.contour() now work for 1x1 matrices 802 and with constant z values. 803 804 805 CHANGES IN R VERSION 0.65.0 806 807NEW FEATURES 808 809 o A first step in improving performance has been made. 810 Attached objects, libraries etc are now hashed; performance 811 gains will be particularly apparent if large packages are in use. 812 813 o First version of package ts for time-series analysis. 814 This has fairly complete S-PLUS compatibility, but more features 815 are planned. See library(help=ts) for details. 816 817 o warnings can be collected (options(warn=0), the default), printed 818 immediately (options(warn=1)) or turned into errors (options(warn=2)). 819 As a consequence, all warnings and errors now are printed followed 820 by a newline, if one is not supplied. (This should improve the 821 S compatibility of the use of PROBLEM ... in compiled code.) 822 823 824 825 o All R environment variables are now of the form `R_xxx'. In 826 particular, `RHOME', `RLIBS' and `RPROFILE' are now called 827 `R_HOME', `R_LIBS', and `R_PROFILE'. 828 829 o The handling of q()/quit()/EOF has been changed, with a new option 830 "default". In interactive use this asks unless --save or --no-save 831 has been specified: if these are specified they set the default. 832 833 o Limited capability for tilde expansion of file names even without 834 readline (on Unix, and on Windows). 835 836 o New environment variables `R_HISTFILE' and `R_HISTSIZE' for the 837 name and size of the history file. 838 839 o Attempting to restore (at startup) too large a .RData is now 840 a fatal error. 841 842 o The loading of shared library on Unix now uses RTLD_NOW not 843 RTLD_LAZY. This means that all symbols must be resolvable 844 when the library is loaded, and R will not terminate later 845 when a missing symbol is called. Code which had missing symbols 846 (including some packages) will need to be re-compiled. 847 848 849 850 o New generic function all.equal(); 851 most useful for numerical comparisons `up to rounding errors'. 852 853 o New function boxplot.formula() as a formula interface to boxplots. 854 855 o New functions getwd() and setwd() for getting and setting the R 856 working directory, basename() and dirname() for manipulating paths. 857 858 o Function locator(, type=) is implemented to plot points or 859 draw lines interactively. 860 861 o Functions new.env() to create empty environment and local() to 862 allow local evaluation of expressions, with various useful 863 idiomatic uses. 864 865 o Convenience functions parent.frame() and eval.parent(). 866 867 868 869 o A new scheme for keeping source code with user-defined 870 functions has been implemented. In particular, comments 871 will no longer move about or disappear. The flip side of the 872 coin is that you can no longer rely on R to indent your 873 code for you. The stored-source facility can be turned 874 off with options(keep.source=FALSE), and for an individual 875 function by deleting the "source" attribute. 876 877 If the source attribute is absent, the function will be 878 deparsed for editing or printing, but any comments will be 879 lost. 880 881 o expressions have gained semantics that are closer to 882 those of S. They don't get evaluated except when explicitly 883 specified. Example: 884 885 e <- expression(x); e[[1]] <- expression(123); eval(e) 886 887 now gives expression(123), not 123. This fixes some problems 888 with expressions in the list argument to do.call(). 889 890 891 892 o contrast() no longer drops colnames for 1DF contrasts. 893 Consequentially, the labels of regression coefficients for binary 894 factors contain level names (again ...). 895 896 o na.omit() and na.fail() are now generic. 897 898 o plot.lm() has more options and now does 4 plots by default, should 899 also be okay for "glm" object; all thanks to John Maindonald. 900 901 o If the dimnames of a table are themselves named, then their names 902 are used to label the respective dimensions in tabular output. 903 904 o chisq.test() now optionally computes the p-value by Monte Carlo 905 simulation (in the standard case of a 2-d contigency table). 906 907 o source() has a new argument `chdir' for changing the working 908 directory to that of the file being sourced when evaluating. 909 910 o If data() loads an R source file, it now changes the working 911 directory (to that containing the file) when evaluating. 912 913 o Interpret strings NaN and Inf in character to numeric conversions 914 (and thereby in read.table) 915 916 o The presence of an object `.conflicts.OK' in a package suppresses 917 conflict checking in library() for that package. 918 919 o uniroot() can now be used recursively. 920 921 o hdf5{read|write} now allow more kinds of attributes and add support 922 for HDF5 version 1.2 (or newer) thanks to Marcus G. Daniels. 923 Configure checks for HDF5 1.2 availability, older versions will 924 no longer work. 925 926 927 928BUG FIXES 929 930 o x ^ y gives proper results when x or y are infinite. 931 932 o The semantics of <<- have been corrected. The search for 933 a variable binding to modify now begins one level "up" from 934 the current one. Thus S and R semantics in "non-closure" 935 functions will be identical. 936 937 o .Last() is called when terminating with q() (not just with EOF). 938 939 o abline() now understands the "lwd" graphics parameter if it 940 is supplied as an inline argument. 941 942 o axis() now sorts `labels' when it sorts `at'. 943 944 o Some small changes have made in the axis drawing code to 945 ensure that tick-mark label alignment is correct for 946 non-default values of the "las" parameter. 947 948 o Improved error message from check.options(). 949 950 o cm.colors(n) now doesn't append silly "v=1"; works for n=0, n=1. 951 952 o cooks.distance() now also works for "glm" objects; 953 deviance.lm() now ok for the case of weights. 954 955 o date() doesn't return a final "\n" (again ...). 956 957 o diag() and diag<- now handle correctly matrices with zero rows or cols. 958 959 o help([<-.factor) (etc) work again. 960 961 o is.recursive(list(.)) is now TRUE [PR#221]. 962 963 o log(0) gives -Inf on all architectures. 964 965 o When persp() was the first graphics command given to R it gave 966 the error "plot.new() has not been called yet". This no 967 longer happens. 968 969 o pgamma() gave 0 or 1 for extreme arguments too soon. 970 971 o plot(<function>, log="x") doesn't give a silly warning any more. 972 973 o The internals of postscript() have been changed so that line 974 textures (dotted dashed etc) look better. The use of the 975 PostScript "initclip" operator has been removed so that we 976 can(?) really claim eps compliance. 977 978 o revsort() misbehaved if n<=1, causing sample(1,1,,1) to 979 segfault 980 981 o seq(along = v) { and seq(v) when length(v) > 1 } now returns 982 a result of mode "integer". 983 984 o split.default() now uses subscripting for x with a non-null 985 class, this preserves, e.g., the class of factors 986 987 o substr/substring(), deparse(), dput(), dump(), print() 988 will work for arbitrarily long strings. 989 990 o which(x) failed when x had names and contained NAs. 991 992 o Default editor files (e.g. from fix()) are now removed at termination. 993 994 o Typos in NegBinomial.Rd (Negative Binomial distrib), thanks to Ch. Gu. 995 996 o a clipping problem for plots when there non-zero outer margins 997 has been fixed. This problem used to affect coplot() and pairs(). 998 999 o get("zzz", mode="xxx") missed promise objects. 1000 1001 o match.fun failed when a data frame was attached containing a 1002 "length" variable (e.g.) 1003 1004 1005 ************************************************** 1006 * * 1007 * 0.64 SERIES NEWS * 1008 * * 1009 ************************************************** 1010 1011 1012 CHANGES IN R VERSION 0.64.2 1013 1014 1015NEW FEATURES 1016 1017 o new target for R installation testing : make strict-tests. 1018 1019 o symnum(x) now nicely codes logical x. 1020 1021 o convolve() has a new type = c("circular", "open", "filter") 1022 argument allowing more than the only circular convolution. 1023 1024 o par(xpd) now has three settings: FALSE (clip to plot region), 1025 TRUE (clip to figure region), or NA (clip to device region). 1026 1027 o zapsmall(x) works for complex x. 1028 1029 o new global variable R.version.string (for plots & reports). 1030 Deprecated version & Version for new R.version & R.Version. 1031 1032 o R CMD Rd2dvi has builtin "Usage" help and works for multiple files. 1033 Useful for automatic reference manual of a package. 1034 1035 1036BUG FIXES 1037 1038 o power() is now fully implemented and documented. 1039 1040 o A couple of problems with group generic operations. 1041 1042 o A bug which meant that it was not possible to add elements 1043 to zero length lists in the obvious way has been fixed. 1044 x <- list(); x[[1]] <- 10 1045 x <- list(); x[["a"]] <- 11 1046 both now work. 1047 1048 o save.image() ignored dot-names. (esp. .First()) 1049 1050 o lab= argument to plot() misinterpreted by axis() via ... passing 1051 1052 o NULL labels in text() caused segfault 1053 1054 o matrix(f,...) with f a factor now coerces to character 1055 1056 o documentation errors for substitute and is.vector, minor fixups for 1057 trig and nlm 1058 1059 o Background colours are set properly on X11 devices with 1060 colortype="pseudo": sometimes they were not allocated separately. 1061 1062 o C() works (again?) for a single argument. 1063 1064 o is.na() didn't work properly for "list" arguments. 1065 1066 o symnum() sometimes failed with arrays of rank >= 3. 1067 1068 o in some cases one could get nonblack color instead of 1069 black on 2nd x11() window. 1070 1071 o influence.measures(.) $ is.influential was wrong on the 1072 cooks.distance. 1073 1074 o printing of complex NaN/Inf was wrong as well. 1075 1076 o printing of complex named vectors had a wrong initial space. 1077 1078 o allow trailing space in character->numeric coercion 1079 1080 o library() gave wrong "masked" warnings in some cases. 1081 1082 o par(xpd) semantics were not compatible with S. 1083 1084 o rect() output was not clipped in PostScript. 1085 1086 o par(pin=c(width, height)) was behaving as par(pin=c(width, width)). 1087 1088 o Non-blank separated data files didn't have their 1st field 1089 handled properly. 1090 1091 o "aux" directory moved to "tools" to avoid difficulties on 1092 Windows. 1093 1094 o structure() clobbered factors with missing levels. 1095 1096 o pmatch() misbehaved on duplicate matches. 1097 1098 o R CMD Rd2dvi <file.Rd> works again. 1099 1100 o logical binops tried to set time series parameters before dimensions. 1101 1102 o upped the BUFSIZE in model.c (NOT proper long-term solution). 1103 1104 o dput(), dump() and deparse() now always use DBL_DIG (=15) digits 1105 for numeric formatting. 1106 1107 o chull() now works for vertical borders, such as in chull(c(1,1,2),3:1). 1108 1109 1110 CHANGES IN R VERSION 0.64.1 1111 1112NEW FEATURES 1113 1114 o barplot() and boxplot() are now generic 1115 1116 o relevel function to reorder levels in factors. 1117 1118 o contr.treatment now has a base= argument for selecting the 1119 baseline group. 1120 1121 o New command line option `--no-environ' (under Unix) to prevent 1122 sourcing the `~/.Renviron' file. Implied by `--vanilla'. 1123 1124 o Packages can now have a configure script. If a file `configure' 1125 is found it is executed before anything else is done by R 1126 INSTALL. 1127 1128 o If HTML help files are asked for but not available, text help 1129 is used. 1130 1131 o HTML help file conversion reports unsatisified \link{..}s. 1132 1133 o `vsize' and `nsize' can be set by the environment variables 1134 R_VSIZE and R_NSIZE respectively, perhaps most conveniently from 1135 `~/.Renviron' under Unix or Windows. Command-line settings will 1136 take precedence. 1137 1138 The defaults have been increased to 6M and 250k. 1139 1140 o zip files can be used for storing help and example files. See 1141 the help files for "help" and "example" for details. 1142 1143 o New submission method "none" (for not sending email) in 1144 bug.report(). 1145 1146 o `R CMD check' can now also be used for installed packages without 1147 the corresponding sources. 1148 1149 o The sources for the Windows port are included in src/gnuwin32. 1150 See src/gnuwin32/readme. 1151 1152BUG FIXES 1153 1154 o deparser left off empty parentheses on e.g. (function(x) x)() 1155 1156 o cat() now works on "name" objects 1157 1158 o forgot to set jump buffer in return context in one case 1159 1160 o parser dropped off tagged missing args on function calls ( f(a=) ) 1161 1162 o relops tried to set time series parameters before dimensions 1163 1164 o arithmetic tried to set time series parameters before dimensions 1165 1166 o mvfft fixes (from Martyn Plummer) - not working with vectors and 1167 segfault problem. 1168 1169 o Rephrased error message on invalid assignment target. 1170 1171 o ifelse() now evaluates yes/no only if needed 1172 1173 o PROTECT'ed some memory in NewExtractNames that was getting overwritten 1174 during garbage collection. 1175 1176 o Crossing factors (`:') works again. 1177 1178 o terms.formula used to choke on terms more than 60 characters long 1179 1180 o is.nan() should now work correctly on new/old-style lists. 1181 1182 o x[[i]] did not work correctly for negative subscripts i. 1183 1184 o as.list() didn't work for expressions 1185 1186 o x[[i]] <- quote(a) (x generic vector) didn't work 1187 1188 o for method functions: many argument name changes, add ... where 1189 needed, for consistency with the generic function. 1190 1191 o example() will allow (again) aliased topic names. 1192 1193 o HTML help file conversions will find hyperlinks in the main 1194 library as well as the current library. Links containing `<' 1195 or `>' now work properly. 1196 1197 o Rdconv conversion of \section{}{}s to Sd corrected. 1198 1199 o ppois rounded non-integer `q', should truncate. 1200 1201 o pnbinom was wrong for non-integer `q'. 1202 1203 o dbinom, dgeom, dnbinom, dpois give 0 with a warning for 1204 non-integer arguments. 1205 1206 o load / save / data allow unlimited string sizes. 1207 1208 o strsplit() allows unlimited string size. 1209 1210 o eigen() now should work (again) in all cases. 1211 1212 o is.nan() fixed to work (again) in architectures with 1213 "unspecified" internal isnan(). 1214 1215 1216 CHANGES IN R VERSION 0.64.0 1217 1218NEW FEATURES 1219 1220 o Files BUGS and FAQ are now included with distribution and 1221 various "front matter" files have been cleaned up. 1222 1223 o readline has now an argument prompt = "" 1224 1225 o coplot() now labels levels when conditioning variable is factor 1226 (John Maindonald). 1227 1228 o A new function filled.contour() has been added. It produces 1229 a variant of contour plots where the area between contours 1230 is filled with a solid colour. The function (currently) 1231 uses the layout() function and so is restricted to a full 1232 page display. 1233 1234 o The function terrain.colors() has been modified to remove a 1235 visual discontinuity (at yellow). In addition, a function 1236 cm.colors() which implements a Cleveland-style cyan-magenta 1237 palette has been added. 1238 1239 o Primitive function .External() to call dynamically loaded 1240 `internal'-style functions (code from Jean Meloche). 1241 1242 o Function page() to view an R object in a pager. 1243 1244 o Support for handling embedded '\n's in text strings 1245 handed to low-level graphics functions has been added. 1246 Some changes to the PostScript graphics driver were 1247 needed to support this, so there may some minor change 1248 in the appearance of plots produced in PostScript. 1249 1250 o The LaTeX documentation is now split into 2 parts: the (currently 1251 almost non-existent) manual and a reference index. 1252 Manual: new section on loading C++ code. 1253 1254 o [EXPERIMENTAL] Gnome support added. Use ./configure --with-gnome 1255 to try it, but don't expect too much yet. 1256 1257 o HDF5 support improved. Still not perfect, though. 1258 1259 o The X11 graphics driver can now use a variety of strategies 1260 for handing color. This means that it is now possible to 1261 use black and white or grayscale graphics on color displays. 1262 There are two strategies for handing color on pseudocolor 1263 displays. The original "allocate-colors-until-they-run-out" 1264 strategy has been supplemented by one which allocates a 1265 color cube at startup and approximates requested colors 1266 by those in the cube. On truecolor displays, there is no 1267 limit on the number of colors which can be displayed and 1268 you get exactly the color you request. (Note that 1269 Directcolor and staticcolor displays are not supported yet). 1270 1271 o The persp() function now allows shading of the rendered surface 1272 using a simple lighting model. 1273 1274 o Many functions providing an interface to the operating system 1275 have been made "platform independent". See the manual entries 1276 for "file", "list.files" and "file.show" for details of the new 1277 interface. The system.file() interface has been changed. 1278 1279 o There is a new function "eval.with.vis" which behaves exactly 1280 like "eval", but which returns both the result of the evaluation 1281 an a logical value indicating whether the value is ``visible''. 1282 This has been used to replace some ad-hoc tests for whether 1283 value should be printed or not in "source". As a consequence, 1284 the "example" and "demo" functions no longer print invisible 1285 values when the example script is run. 1286 1287 o Index files in data directories in packages should be `00Index' 1288 not `index.doc'. 1289 1290 o Function interaction() to compute factor interactions. 1291 1292 o load() can load to specific environments. 1293 1294 o Sockets interface: make/read/write/close.socket() 1295 1296 o Function chull() for planar convex hulls 1297 1298 o pairs.formula() allows formula notations for scatter plot matrix. 1299 1300 o new dataset co2. 1301 1302 o documentation for datasets mtcars, plants, pressure, randu and 1303 sleep. 1304 1305 o the sunspots dataset is now monthly rather than annual. 1306 1307BUG FIXES 1308 1309 o strsplit(), scan() and friends use a much larger char buffer 1310 (still fixed size; this will change again) 1311 1312 o ts() allows a data-frame argument `data'. 1313 1314 o anova.lm handles singular models better, and deparses responses. 1315 1316 o dump() now uses digits=12 rather than the current setting. 1317 1318 o tabulate ignores entries beyond nbins rather than core dumps. 1319 1320 o ?.C documents what C/Fortran types R objects correspond to 1321 in foreign function calls, which is not what everyone thought. 1322 1323 o changed long to int in several .C calls to follow the above rules. 1324 1325 o rbind(x1,x2) now does not lose dimnames when xi are 1326 character or complex. 1327 1328 o readline() accidentally inherited menu()'s prompt. 1329 1330 o .C() and .Fortran() now correctly report that there might be 1331 NaN/Infs, not just NAs, unless NAOK=TRUE. 1332 1333 o Resizing an inactive graphics window to an invalid size left 1334 that window active and produced a spurious prompt and newline 1335 in the console window. This no longer happens. 1336 1337 o poly() rescales x to increase accuracy 1338 1339 o apply() preserves names in yet another case [-> new example]. 1340 1341 o phyper() now works for larger arguments than before. 1342 1343 o Missing values didn't work in log plot 1344 1345 o outer() doesn't produce all-empty dimnames any more 1346 1347 o quantile.default() works when `probs' has zero length 1348 1349 o example() now works again in all cases [AnIndex spaces]. 1350 1351 o typos fixed in nlm() message, glm help 1352 1353 o pt() now works better for extreme `df' arguments and gives 1354 at least an approximate answer for ncp > 37.6. __more to change__ 1355 1356 o fixed some glitches with formatC() and its docs. 1357 1358 o several fixes in *.c code to make -Wall happy 1359 1360 o curve() [and plot.function()] now use proper `x' values with log="x"; 1361 `type = "."' now works with curve() and plot.function() 1362 1363 o zapped old windows files since they didn't build any more. 1364 The sources for the later gnuwin32 version are expected to 1365 appear here for 0.64.1. The #ifdef Win32's here are for that 1366 version. 1367 1368 1369 ************************************************** 1370 * * 1371 * 0.63 SERIES NEWS * 1372 * * 1373 ************************************************** 1374 1375 1376 CHANGES IN R VERSION 0.63.3 1377 1378NEW FEATURES 1379 1380 o get() and assign() allow position in search list to be a 1381 character string. (e.g. get("delete.response","package:base") 1382 1383 o HTML search now works for all packages (after new installation). 1384 1385 o R INSTALL now also copies DESCRIPTION file to target dir. 1386 1387 o offsets should work with lm as well as with glm now 1388 1389 o range() is now in the Summary group, trunc() back in the Math 1390 group. 1391 1392 o Under Unix, R-specific environment variables can now be kept/set 1393 in `~/.Renviron'. 1394 1395 o New options `latexcmd' and `dvipscmd' for specifying the locations 1396 of LaTeX and dvips; corresponding environment variables renamed to 1397 `R_LATEXCMD' and `R_DVIPSCMD'. 1398 1399 o --vsize & --nsize now both give size in "single units" 1400 (bytes/cons cells) with possible 1401 suffixes "M" (Mega), "K"ilo (1024) and "k"ilo(1000). 1402 1403 o [pdqr]negbin() now also work with non-integer 'size' [by Ben Bolker]. 1404 1405 o New standard package `lqs' for resistant regression and 1406 covariance estimation, contributed by Brian Ripley. 1407 1408 o new functions match.fun() and kronecker() [by Jonathan Rougier] 1409 1410 o par(las = 3) is a new option. 1411 1412 o new function jitter() [slightly more useful than S's]. 1413 1414BUG FIXES 1415 1416 o system(command, intern=FALSE, ignore.errors=FALSE) 1417 changed 1st & 3rd argument names and is better documented. 1418 1419 o "/Font5 /Symbol findfont definefont" confused some printers 1420 1421 o Bounding box rotated 90 deg for landscape (shouldn't be) 1422 1423 o Legend skipped symbol for pch=0 1424 1425 o compilation on non-Intel Linux systems no longer looks for __setfpucw 1426 1427 o a %% b -- is now periodic instead of symmetric; more S compatible. 1428 1429 o locator(n=512) -- default: MANY points, not just one. 1430 1431 o qqnorm() uses ppoints() and returns list with x sorted along y. 1432 1433 o plot.formula now allows ylab to be set 1434 1435 o plotmath had trouble with paste()'ing expressions 1436 1437 o plotting math expressions now also works for objects of mode 1438 "call" (in particular on the result of substitute()) 1439 1440 o locator() on log axes: value antilogged twice 1441 1442 o (a real oldie - and trival too) is.recursive now TRUE for 1443 expressions 1444 1445 o sanitised delete.response 1446 1447 o x[["a",]] could crash R 1448 1449 o strwidth() crashed R if no device open 1450 1451 o predict inconsistencies with offsets straightened out 1452 1453 o tapply goofed when FUN returned named scalar 1454 1455 o [.factor now retains contrasts attrib. 1456 1457 o hist() had trouble with plotting math 1458 1459 o HTML indices get only built when installing a package to RHOME 1460 1461 o subscripting with a length zero logical no longer bombs. 1462 1463 o as.ordered(NULL) now returns an "ordered" object. 1464 1465 o --debugger .. now gives a warning if other command line args are used 1466 1467 o pt(t, df, ncp) now also works for bigger ncp's 1468 1469 o apply(a,d, fun) now passes vectors (rank 1 arrays) to fun. 1470 1471 o model.frame() with subset and only one column fixed 1472 1473 o boxplot(<data.frame>) now works again. 1474 1475 o dyn.load(..) failing gives more informative error message. 1476 1477 o Ops.factor: not error, but a warning + NAs 1478 1479 o bug.report() keeps report file if can't be e-mailed 1480 1481 o Ops.data.frame : things like d.fr < a now return a matrix 1482 1483 o data.frame(): duplicated row.names now give a warning when dropped. 1484 1485 o boxplot(.., ylim=..) or (.., axes=..) gave erronous warning 1486 1487 o glm had wrong init code for models with offsets. Also fixed 1488 so that linear predictor includes offset, also when predicting. 1489 1490 o predict.glm didn't work with se=T 1491 1492 o backsolve(), qr.solve... now return a vector when x (or y) is a vector. 1493 1494 o string tags now converted to symbols and strange symbolic 1495 tags print as strings, cf. e<-quote(c(F=2, "tail area" = .5)), etc. 1496 1497 o row.names(.) <- val doesn't allow duplicated values anymore. 1498 1499 o library(mva)'s dist() now works with both "euclidean" & "euclidian" 1500 1501 o revised curve function to avoid using grep patterns that caused 1502 problems under Solaris 2.6 1503 1504 o coplot() now has 'number' and 'overlap' arguments, and should work 1505 in more situations. [by John Maindonald and MM]. 1506 1507 o save(..ascii=TRUE) now uses "full precision" for numerics. 1508 1509 o as.array() preserves names() 1510 1511 o outer() works for general array args and preserves (dim)names. 1512 1513 o print.factor and print.ordered now return their args invisibly. 1514 1515 1516 CHANGES IN R VERSION 0.63.2 1517 1518NEW FEATURES 1519 1520 o sink() has new `append' argument. 1521 1522 o new function rle(). 1523 1524 o plot(.) and curve(.) also accept a function as first argument. 1525 new `plot.function'. 1526 1527 o new function loglin(). 1528 1529 o pretty() has new arguments and now better "obeys" its `n' arg. 1530 Internal GPretty() [implicitly used by axis(.., at = NULL,..) 1531 now uses pretty. 1532 1533 o new generic function aggregate() with methods for data frames 1534 and time series. 1535 1536 o data set `euro' with Euro conversion rates. 1537 1538BUG FIXES 1539 1540 o model.frame(,subset=) no longer loses contrasts 1541 1542 o `make install' copied the R shell script a second time without 1543 getting RHOME right (thus also breaking R CMD check). Fixed. 1544 1545 o help() after help.start() did not work if topic was not equal 1546 to filename (e.g. rnorm is found in Normal.html) 1547 1548 o fix the 0.63.1 fix for abbreviate(.); improved doc. 1549 1550 o predict.mlm(.) couldn't have worked with `newdata'. 1551 1552 o model.frame/na.omit bug for matrices and Surv objects. 1553 1554 o mean( <data.frame> ) now doesn't return sum(.) anymore. 1555 1556 o str(.) doesn't give extraneous "..." in rare cases anymore. 1557 1558 o Added documentation for group methods ("Math", "Ops","Summary"). 1559 1560 o R_PAPERSIZE is used for Rd2dvi and at configure time for the 1561 `make dvi' parts. 1562 1563 o hist(i) now also works for e.g., i = -1, 0, or 1. 1564 1565 o range() now works on dataframes (uses c(..., recursive=T)) 1566 1567 o pretty(.) does not loop infinitely anymore in very extreme cases. 1568 1569 o math functions should work better on dataframes now 1570 1571 o plot(.., type = 'h', log = 'y') now works ... 1572 1573 o plot.factor(x, y, ...) of two factors now makes 1574 barplot(table(y,x), ...) 1575 1576 o use object$prior.weights in add1.glm, drop1.glm (Brian Ripley) 1577 1578 o rnorm(1,mean=m,sd=0) returns m, not NaN (Ben Bolker) 1579 1580 o runif(n, a,a) now returns rep(a,n) instead of NaNs. 1581 1582 1583 CHANGES IN R VERSION 0.63.1 1584 1585NEW FEATURES 1586 1587 o new function mosaicplot(). 1588 1589 o xy.coords(.) has a "recycle = FALSE" argument, used in text(). 1590 1591 o RNGtype() allows to choose different Random Number Generators. 1592 __EXPERIMENTAL__ 1593 1594 o print.default(.) now also works with a `right = TRUE' argument. 1595 {{ print.matrix(.) is bound to become deprecated... }} 1596 1597 o new help page `Memory' on the usage of command line options 1598 --vsize and --nsize. Error message if R runs out of memory 1599 points to help(Memory). 1600 1601 o rowsum() and improved na.omit() added from survival4 1602 1603 o backsolve(.) has new arguments "upper.tri = TRUE, transpose = FALSE" 1604 1605 o hist() has new "right = TRUE" argument; 1606 "right = FALSE" gives [a,b) intervals 1607 1608 o help() has "htmlhelp" argument, allowing to suppress htmlhelp after 1609 help.start(). This is desired for ESS. 1610 1611 o quantile(.) has an "names = TRUE" argument for speed. 1612 It is much better documented now. 1613 1614 1615BUG FIXES 1616 1617 o build-help --dosnames should now also work for text help, 1618 latex and examples. 1619 1620 o seq() should work better now (fuzz-factor 1e-7 inserted) 1621 1622 o multiple arguments to return caused value to be a pairlist 1623 1624 o data.frame choked on long names from deparse() 1625 1626 o data.edit now works (dataedit doesn't need pairlist()s anymore) 1627 1628 o as.pairlist(NULL) is ok 1629 1630 o ts(1:5, start=2, end=4) now work. Further plot(ts(..), ts(..)) 1631 1632 o eigen() returns $vectors in any case [S compat]. 1633 1634 o apply(cbind(1,1:9, 2, quantile) doesn't drop quantile names anymore 1635 1636 o array(1, dim=(1:3)[c(F,F,F)]) is now valid == array(1,NULL) == c(1); 1637 the same for array(a,d, list()) 1638 1639 o fix problem with step() and offsets 1640 1641 o drop attributes on matrix subsetting 1642 1643 o kappa(.) now works [dtrco now in load table (ROUTINES)]. 1644 1645 o pmin() and pmax() now preserve attributes. 1646 1647 o handle null models arising in drop1(), step, etc. 1648 1649 o partial matching problem with $ indexing 1650 1651 o matplot(.) works with lwd (vectors) 1652 1653 o par("cex.axis") now has the desired effect... 1654 1655 o which(.) now omits NAs in its argument. 1656 1657 o rbind.data.frame caused character-to-factor coercion a bit too often 1658 1659 o couple of messups in dotplot 1660 1661 o z[[1]] <- ~x probl fixed as suggested by J.Lindsey 1662 1663 o do_modelframe could lose contrast attributes 1664 1665 o "make check" needed standardisation of locale 1666 1667 o unlist(...,recursive=F) got names wrong 1668 1669 o abbreviate(.) does not anymore return random garbage in some 1670 cases [by Guido M.] 1671 1672 1673 CHANGES IN R VERSION 0.63 1674 1675NEW FEATURES 1676 1677 o library(... , warn.conflicts = TRUE) 1678 now prints all conflicts arising from attaching the given package. 1679 1680 o new .Platform variable for better modularizing 1681 platform dependence. __This_is_"beta"_and_bound_to_be_changed___ 1682 1683 o new arguments to colnames(..) and 1684 rownames(x, do.NULL = TRUE, prefix = "row"). 1685 _ 1686 o par(bty = "]") for _| box(.) in plots. 1687 1688 o New standard package `modreg' (smoothing and local MODern 1689 REGression methods) contributed by B.D. Ripley. 1690 1691 o par() has a `no.readonly = FALSE' argument which allows more 1692 sensible op <- par(no.readonly = TRUE); on.exit(par(op)). 1693 1694 o Real Bessel functions of 1st to 3rd kind, of arbitrary order: 1695 besselI(), besselK(), besselJ(), besselY() are the I(), K(), 1696 J(), and Y() Bessel functions. 1697 1698 o New conflicts() function from B.D. Ripley 1699 1700 o uniroot has a new `maxiter' argument and returns #{iter} and 1701 precision. 1702 1703 o New option `show.coef.Pvalue' (default: TRUE). If FALSE, 1704 print.summary.[g]lm does not print P values. 1705 1706 o New `R --vanilla' is equivalent to 1707 R --no-save --no-restore --no-site-file --no-init-file 1708 1709 o gc() has now a `verbose' argument and returns a matrix with free 1710 and total n- and v-cells(heap). 1711 1712 o New example(<foo>) function runs the \emph{Examples} R code of 1713 <foo>. example() calls source() which now has a `verbose' 1714 instead of `debug' argument. 1715 1716 o experimental functions [as.|is.|]pairlist() for the few old-style 1717 dotted pair lists [undocumented]. 1718 1719 o options(check.bounds = TRUE) makes sub-assignments which 1720 "stretch" a vector give a warning [dropped undocumented 1721 check.bounds() function]. 1722 1723 o Makefiles should now conform (mostly) with the GNU Coding 1724 Standards. In particular, `make install', `make uninstall' 1725 and `make install-strip' now work. 1726 Also, it is now possible to build R in a non-source directory. 1727 1728 o which() preserves names and has a new `arr.ind' argument 1729 allowing for array indices. 1730 1731 o New functions {d,p,q,r}signrank for the Wilcoxon signed rank 1732 distribution, and {d,p,q,r}wilcox for the Wilcoxon (rank sum) 1733 distribution. 1734 1735 o Command line options GNUified a bit further. 1736 New command line option `--verbose' for printing more 1737 information about progress. 1738 Command line options `--vsize' and `--hsize' as replacements 1739 for `-v' and `-n' which are now deprecated. 1740 Added `--silent' as synonym for `--quiet'. 1741 Short-style option `-V' obsolete. 1742 1743 o Added bug.report() to generate & send bug reports from 1744 within R. 1745 1746 o The PostScript device driver now uses the ISO Latin1 font 1747 encoding. This should allow Western Europeans to render 1748 their languages correctly. It is likely that additional 1749 encodings will be added (e.g. Latin2) when we figure out 1750 how to set the correct font encoding in printers. 1751 1752 o The mathematical annotation code has been reworked. Italic 1753 correction works better. Additional functionality will be 1754 added. 1755 1756 o "sample" now has an optional "prob" argument which gives the 1757 probabilities of sampling each element in the vector being 1758 sampled. The present implementation is based on some code 1759 from E. S. Venkatraman <venkat@biosta.mskcc.org>. 1760 1761 o The internal data structure used to represent lists has 1762 changed from being based on dotted pairs to generic vectors. 1763 Users should see no changes as a result (with the exception 1764 of some efficiency gains in list operations). 1765 1766 o Subscripting matches that of S more closely. It is now 1767 possible to use subscripting beyond that the end of vectors 1768 and lists. 1769 1770 o Element labelling in "c" and "unlist" should match that of 1771 of S. 1772 1773 o Added split.screen etc functions for manipulating multiple 1774 screens on a single device 1775 1776 o After help.start() the HTML help system is used for all help() 1777 requests. The name of the browser is now controlled by 1778 options("browser"). 1779 1780 o Added kmeans to package mva (donated by B. Ripley) 1781 1782 o New persp function added. It is NOT compatible with S (yet) 1783 and is subject to internal and interface changes. 1784 1785 o gctorture() for torturing the garbage collector to reveal 1786 memory protection bugs. (Call GC on every memory allocation). 1787 1788 o B. Ripley's aov code (and more) has been added. This includes: 1789 1790 - aov() now handles models with Error terms, multiple 1791 responses. 1792 1793 - proj(), model.tables(), se.contrast(), replications(), 1794 eff.aovlist() are implemented for aov fits, and where 1795 appropriate for lm fits. 1796 1797 - dummy.coef(), with methods for lm and aovlist fits. 1798 1799 - add1(), drop1(), step() for stepwise fitting of statistical 1800 models, with default, lm and glm methods. 1801 1802 - summary() and deviance() -- mlm methods. 1803 1804 - kappa() (for estimating condition numbers) 1805 1806 - labels() to find a suitable set of labels from an object 1807 1808 - C() for setting the contrasts of a factor 1809 1810 - anova(), plot(), summary() and deviance() methods for mlm fits 1811 1812 o eval() semantics changed when envir= is a list. A 3rd argument is 1813 now allowed, specifying the enclosure (i.e. where R looks for 1814 variables *not* found in envir=) it defaults to the calling 1815 environment (was .GlobalEnv). Note that when used inside a function, 1816 it is often desirable to set the enclosure to the parent 1817 environment instead. [ eval(e, data, sys.frame(sys.parent())) ] 1818 1819 1820BUG FIXES 1821 1822 o min(NULL); max(double()) now give warnings. range() gives NA. 1823 1824 o substring("", NULL) no longer segfaults. 1825 1826 o formatC(.) now takes default "width = 1" when both width and digits 1827 are unspecified. 1828 1829 o several fixes in internal axis and tickmarks setup for 1830 "extreme" ranges and values, especially for "log" scaling. 1831 1832 o seq(a,a, by=b) now works properly. 1833 1834 o print.data.frame(.) now calls print.matrix instead of print(.) 1835 which finally enables the 'right = TRUE' argument. 1836 1837 o R --help gives more 1838 1839 o postscript() now uses 'hyphen' instead of 'plusminus' for a minus. 1840 1841 o source(..., echo=TRUE) now puts a `"' if necessary after truncation. 1842 1843 o Changes to the PostScript device driver mean that the volume 1844 of output has been reduced to about a third of what it was. 1845 1846 o Fixes and restructuring to name generation in connection with 1847 unlist() and c(). 1848 1849 o Many bugs found and fixed in the memory allocation / garbage 1850 collection area. In particular, the parser was sometimes 1851 UNPROTECT()ing the wrong pointers. 1852 1853 o lm(y[g=="1"]~x[g=="1"]) caused memory corruption 1854 1855 1856 CHANGES IN R VERSION 0.62.4 1857BUG FIXES 1858 1859 o plot.default(.) has now 'sub' argument which eliminates 1860 "Warning: parameter "sub" couldn't be set in high-level plot() function" 1861 1862 o formatC(numeric(0)) now works. 1863 1864 o menu(.) works for empty imput 1865 1866 o 0i ^ 2 now gives 0+0i as it should. 1867 1868 o ppoints() now behaves like S, and has additional argument 'a' 1869 1870 o seq(1,6,by=3) and similar "by" calls now work okay 1871 1872 o mahalanobis(.) now fixed; does *NOT* have default arguments for 1873 center and cov anymore. 1874 1875 o diag(.) doesn't return non-sensical dimnames anymore. 1876 1877 1878 CHANGES IN R VERSION 0.62.3 1879 1880NEW FEATURES 1881 1882 o preserve factor levels and contrast settings in model objects 1883 1884 o factor[...,drop=T] reduces level set 1885 1886 o added dblepr, intpr 1887 1888 o do_modelmatrix(model.c): Set rownames from data argument. 1889 1890 o New generic function preplot(). 1891 1892 o A new R BATCH interface for non-interactive execution. 1893 1894 o Added `offline' argument to help() for producing hardcopy via 1895 latex and dvips. 1896 1897 o glm.fit.null now calculates AIC and print.glm.null prints it 1898 1899 o effects.lm implemented 1900 1901 o new class "mlm" for multivariate "lm", predict.mlm to go with it 1902 1903 o "Details" section added to .Rd format 1904 1905 o R_PRINTCMD and R_PAPERSIZE can now be set via users' environment, 1906 overriding setting in startup script. 1907 1908 o enhanced identify() 1909 1910 o new function print.coefmat() 1911 1912 o added unix() as .Deprecated("system") 1913 1914 o date() replacing system.date() 1915 1916 1917BUG FIXES 1918 1919 o substitute would re-substitute after expanding ... 1920 1921 o indexing modified object in some cases 1922 1923 o sweep should work again on dataframes 1924 1925 o minor changes in aov() 1926 1927 o builds should now actually work on systems that do not add 1928 underscores to Fortran symbols 1929 1930 o biplot[.default]() was redundant in "base" package; now only in "mva". 1931 1932 o unix(..) now helps the user to find system(..) instead. 1933 1934 o apropos("[") and methods("[") now both work (even though "[" is not 1935 a valid regular expression). 1936 1937 o row.names<-.default now exists. Converts object to data 1938 frame and then adds row names 1939 1940 o codes() now distinguishes between ordered and unordered factors 1941 1942 o codes() had *opposite* semantics of Splus. Now it's the same. 1943 1944 o replicating factors now yields factors (again) 1945 1946 o print.summary.xxx functions more consistent, using new function 1947 print.coefmat(). 1948 1949 o Changed many `T' to `TRUE' and `F' to `FALSE' in the base package. 1950 1951 o binary operation on 1x1 matrix lost dimension 1952 1953 o fix anova.glm for null model 1954 1955 o glm.fit.null: ensure df.residual == df.null for a null model 1956 1957 o summary.glm: correlations in saturated cases 1958 1959 o stat.anova: use match.arg and labeled switch statement 1960 1961 o Major cleanup of glm iteration code 1962 1963 o Correct reordering of glm coefficients if pivoting 1964 1965 o Rownames on contrast matrices 1966 1967 o factor() and [.factor preserves class "ordered" 1968 1969 o Code rearrangement in predict.lm (avoid unnecessary computation) 1970 + let rownames through on predictions 1971 1972 o model.matrix.default: Initial code to define model frame 1973 simplified considerably after defaulting data argument to 1974 sys.frame(sys.parent()). This also removes the problem where 1975 data.frame mangles I(x^2) and similar names, so that the 1976 "reorder" sanity check at the end fails. 1977 1978 o The handling of extra FORTRAN libraries (f2c-related and BLAS) 1979 should now be correct. Via SHLIBLDFLAGS, add-ons will also be 1980 linked against these libraries. 1981 1982 o Modified makefiles so configure followed by "make distclean" 1983 should restore the source tree to its original form. 1984 1985 o a leftover "colours <- colors" caused trouble when collating 1986 sequence changes caused files to go into the "base" file in a 1987 different order 1988 1989 CHANGES IN R VERSION 0.62.2 1990 1991(The new functions predict.glm, poly, aov, alias, biplot.default and 1992biplot.princop, update.default and rug all come from Brian D. Ripley, 1993who is also responsible for finding and/or fixing a lot of the bugs) 1994 1995NEW FEATURES 1996 1997 o predict.glm() added. 1998 1999 o text() is generic. 2000 2001 o update.default() (replaces update.glm() and update.lm()). 2002 (This will only work if you comment out update.lm and 2003 update.glm in the sources, or disable them with 2004 update.lm<-function(object,...)NextMethod(), etc.) 2005 2006 o predict.lm() changed towards S-plus compatibility. Intervals are 2007 still available via interval= argument. 2008 2009 o zapsmall() function. 2010 2011 o polygon() now handles NAs 2012 2013 o options(show.signif.stars = TRUE). If FALSE, 2014 summary.lm and similar functions do *not* print significance stars 2015 anymore. 2016 2017 o poly() for [g]lm modelling. 2018 2019 o aov() for Analysis Of Variance [anova]. 2020 2021 o alias() for displaying ``aliased'' factor levels in (>=2)way anova. 2022 2023 o mva: Now has biplot and biplot.princomp 2024 2025 o rug() plot. 2026 2027 o new src/library/profile/Common.R for OS-independent intialization. 2028 2029 o new date stamp mechanism (ensures that prerelease versions carry 2030 correct date) 2031 2032BUG FIXES 2033 2034 o abbreviate() now always retains the first letter. 2035 2036 o attr() partial matches for attribute name. 2037 2038 o axis() accepts graphical parameters. 2039 2040 o binomial() accepts factor responses. 2041 2042 o cbind() works with data frames. 2043 2044 o contrasts() gives simpler labels (like S) for factors with 2045 two levels. 2046 2047 o contrasts<-() now has a how.many= argument. 2048 2049 o contour() and image() can accept a list to specify the matrix. 2050 2051 o contr.poly() uses orthogonal polynomials (like S) not raw 2052 polynomials. 2053 2054 o data() could fail with a partial match to the dataset name. 2055 2056 o density() works correctly if from= or to= are used. 2057 n= can now take any value, not just a large power of 2. 2058 2059 o expand.grid() now accepts more than two arguments, 2060 or a list of factors. 2061 2062 o factor() and ordered() handle their levels argument better. 2063 2064 o family.glm() now returns the correct family (including link etc). 2065 2066 o legend() now knows about lwd. 2067 2068 o match.args() works correctly for default arguments. 2069 2070 o model.frame.lm() did not invoke `lm'. 2071 2072 o model.matrix() calls model.frame() if needed. 2073 2074 o model.response() now returns names, so glm() gives names to 2075 residuals, fitted values, etc. 2076 2077 o quasi() works in glm() (was missing aic component). 2078 2079 o seq() sometimes omitted the final value due to rounding error. 2080 2081 o terms.formula() and update.formula() now resolve `.' in formulae 2082 and tidy up `(a + b) - b' etc. 2083 2084 o ... is now passed down correctly to functions inside functions. 2085 2086 o save.image didn't work (Martyn Plummer) 2087 2088 o abs() instead of fabs() in seq.c crashed R on Digital Unix 2089 2090 o model.matrix() gagged on variables with complicated names 2091 2092 o saturated models acting up in glm 2093 2094 o various improvement of build procedures 2095 2096 o rbind(NULL, matrix) core dump 2097 2098 o density() default 'bw' now 0.9*(...) instead of 1.06*(...) 2099 [=Silverman's rule of thumb]. 2100 2101 o detach(2) now works. 2102 2103 o format() doesn't drop names anymore. 2104 2105 o format.pval() works with NAs. 2106 2107 o print.[summary.][g]lm() functions print numbers better formatted. 2108 2109 o legend() now also works properly in log coordinates. 2110 2111 o backsolve() now working; bakslv.c not depending on 2112 Fortran_underscores. 2113 2114 o Tick marks acting up on log axes in postscript (fix from Martyn 2115 Plummer) 2116 2117 o The Rd format has a new section \details{} (needed for proper 2118 Sd2Rd translation). \R was not understood for nroff 2119 conversions, longer dashes (-- and --- in latex syntax) are 2120 now converted properly. 2121 2122 o prompt.default() now carries "\details{}". 2123 2124 o R [ SHLIB | COMPILE ] were broken on some Solaris systems 2125 due to use of bash syntax. R [ INSTALL | COMPILE | SHLIB ] 2126 now use a MAKE environment variable if present. 2127 R INSTALL only rebuilds man pages if they are not already 2128 up to date. 2129 2130 2131 CHANGES IN R VERSION 0.62.1 2132 2133BUG FIXES 2134 2135 o Accidentally shipped R-0.62 without the tests and etc/Rdoc 2136 directories. 2137 2138 2139 CHANGES IN R VERSION 0.62 2140 2141NEW FEATURES 2142 2143 o Many more help(.) pages. 2144 2145 o The top level Makefile now supports the usual 2146 ./configure; make; make install 2147 procedure (new make targets `all' and `install'). 2148 2149 o The HTML help pages can now be searched for keywords. 2150 2151 o Conversion of functions to and from lists. formals<- and body<-. 2152 The alist() function makes it easier to construct argument lists, 2153 etc. Added expression-->list coercion. 2154 2155 o complex(.) now has optional 'argument' and 'modulus' arguments, 2156 allowing ``polar coordinate'' specifications. 2157 2158 o layout() documented and improved: starts default device if needed, and 2159 returns number of figures. 2160 2161 o New find() function [relying on apropos(..)]. 2162 2163 o objects(<integer>) now works, being equivalent to 2164 objects(pos=<int.>). 2165 2166 o storage.mode() and related functions now return 2167 "double" instead of "real", for compatibility. 2168 "real" is still allowed as synomym for "double". 2169 2170 o A `tests' directory has been added (in the source), and "make 2171 tests" has been modified to run more than all the examples from 2172 the base package. The exact `make tests' behavior is still 2173 bound to change. 2174 2175 o An experimental directory `etc/Rdoc' has been added with a perl5 2176 module to parse R documentation files. Sample perl programs 2177 to use this module are also included. 2178 2179 o All internal mechanisms to support factors and data.frames have 2180 been removed. These are now entirely supported by interpreted 2181 code! `is.unordered' has been eliminated. Thanks to John 2182 Chambers for allowing the distribution of his StatLib code. 2183 2184 o "pmatch" is now completely S compatible and is not just another 2185 name for "charmatch". 2186 2187 o There is now a function called ".Alias" which can be used to 2188 provide multiple names for the same object. Example: 2189 lm2 <- .Alias(lm) 2190 This is dangerous because it can be used to defeat the 2191 call-by-value illusion. 2192 2193 o Many functions changed from <primitive> to .Internal(..). 2194 Currently, new .Internal(.)s in ..library/base/R/New-Internal.R 2195 Primitive functions are now printed as ``.Primitive(..)''. 2196 2197 o [dpqr]hyper(.) now also work with some 0 arguments. 2198 2199 o C-code: Many "-Wall" fixes (MM & DB). 2200 2201 o mva's dist() now takes arguments diag and upper which control 2202 how the distance matrix is printed. plot.hclust() now takes a 2203 labels argument. 2204 2205 o Attributes are now propagated correctly in binary operations. 2206 Changes from: 2207 Steve Oncley and Gordon Maclean 2208 National Center for Atmospheric Research 2209 Boulder, Colorado USA 2210 2211 o configure now also checks for fort77. 2212 2213 o Usage of R INSTALL now is 2214 R INSTALL [options] [-l lib] pkg_1 ... pkg_n 2215 The +/- options were replaced by GNU-style `--no-docs' and 2216 `--no-text', `--no-html', and `--no-latex'. 2217 2218 o Usage of R REMOVE now is 2219 R REMOVE [options] [-l lib] pkg_1 ... pkg_n 2220 2221 o Usage of R COMPILE now is R COMPILE [options] srcfiles, where 2222 through options one can set e.g. CFLAGS or FFLAGS. 2223 2224 o Usage of R SHLIB now is R SHLIB [-o libname] files, where the 2225 file names can be that of source or object files. 2226 2227 o A new R CMD interface allows invokation of executables in 2228 $RHOME/{etc,cmd} without installing them or setting paths. 2229 2230 o Data files are now also documented using the Rd format, all 2231 data documentation in the base package has been converted 2232 accordingly. Rd files for data have a \keyword{datasets} as 2233 identifier. 2234 2235 o new function mahalanobis() for Mahalanobis distance 2236 2237 o quantile.default() now handles Inf's correctly. 2238 2239 o New command line options `--enable-blas' and `--enable-readline' 2240 to configure. 2241 2242 o pretty(x) is more reasonable when max(x)-min(x) < 1e-10 max(|x|), 2243 and has a new argument "shrink.sml" for that case. 2244 2245 o formatC(.) supports a new "fg" format for flexible 2246 non-exponential formatting. 2247 2248 o etc/build-htmlpkglist has been integrated into etc/build-help 2249 (option --htmllists) 2250 2251 o family gaussian(.) and inverse.gaussian(.) both accept several 2252 link arguments [J.Lindsey]. 2253 2254 o The graphics function "tck" now produces effects just 2255 like those in S (e.g. par(tck=1) now produces grid lines). 2256 Since using "tck" produces nasty results in some circumstances 2257 there is also an alternative parameter "tcl" which defines 2258 the tick length in terms of lines of text. The default 2259 setting is par(tcl=-0.5). 2260 2261 o menu() now takes additional arguments `graphics' (currently 2262 unused) and `title'. 2263 2264 o New function plot.formula(). 2265 plot.factor() now produces boxplots when given 2 arguments. 2266 2267 o New function write.table(). 2268 2269 o signif() now has a `digits' default of 6. 2270 2271 o Old-style long command line options (`-save' etc) changed to 2272 GNU-style (`--save' etc). 2273 Debugging options (`-ddd', `-gdb', `-xxgdb') unified into the 2274 new `--debugger' (`-d'). 2275 New command line options `--version' (`-V') and `--help' (`-h') 2276 which print useful information and exit. 2277 2278 o The loading of profiles at startup now works as follows. 2279 Unless the new `--no-site-file' was given, a site profile is 2280 sought (as specified via the environment variable `RPROFILE', 2281 or if this is unset defaulting to `${RHOME}/etc/Rprofile'. 2282 Then, unless the new `--no-init-file' was given, the user 2283 profiles (`.Rprofile' and `~/.Rprofile') are sought. 2284 2285 o New functions subset() and transform() intended primarily to 2286 make life with dataframes easier. 2287 2288 o debian directory has been added so Debian GNU/Linux packages can be 2289 created from raw source. 2290 2291 o The graphics system has been through a major overhaul. 2292 It is now possible to have multiple active device drivers 2293 and to control them with full suite of dev.xxx() functions 2294 available in S. Display lists are now kept for interactive 2295 devices. When an on-screen graphics window is resized, 2296 the content of that window is redrawn at the new size. 2297 At present only X11 and PostScript graphics device drivers 2298 are available, but more are on the way. 2299 2300 o On systems using IEEE arithmetic, the builtin Inf and NaN 2301 values are now recognised and used. NA and NaN should 2302 propagate correctly in computations, with NA dominating 2303 in computations involving both quantities. 2304 E.g. NA+NaN is NA. 2305 2306 o Some of the t, F, and chisq distribution/probability functions 2307 now allow a noncentrality parameter `ncp'. 2308 2309 o Functions ptukey() and qtukey() provide the distribution and 2310 quantile functions for the maximum of several studentized 2311 ranges. 2312 2313 o system.file() [now documented] returns all files matched by 2314 wildcards. 2315 2316 o data() now supports more file formats: .RData for binary 2317 files, .txt or .tab for data to be read by 2318 `read.table(file, header=TRUE)' and .csv for data to be read 2319 by `read.table(file, header=TRUE, sep=";")' 2320 2321 o Rdconv: new tabular environment, new sections `\format' and 2322 `\source', new output format `-type Sd' for S documentation 2323 2324 o .First.lib() now implemented; called by library() after loading 2325 a package. 2326 2327 o print.summary.[g]lm() now give `significance stars' and a symbolic 2328 correlation matrix. 2329 2330 o new is.R() function. 2331 2332 o glm() now also returns an AIC value [from JL]. 2333 print..glm methods indicate the options()$contrasts in some cases. 2334 In summary.glm(..., correlation=..), the default has been changed to 2335 corr. = FALSE which is consistent with summary.lm(). 2336 predict() now works again for glm objects. 2337 2338 o the `flag' argument in formatC(.) can now have more than one 2339 character. 2340 2341 o nlm() returns the number of iterations used [from J.Lindsey]. 2342 2343 o cut, diff, hist, mean, quantile, seq, trunc() are now all generic. 2344 cut() has an `include.lowest' argument as S. 2345 2346 o save.image() as short-cut to save the current session in .RData. 2347 2348 o new design of HTML help pages, including an index of all 2349 functions from all installed packages. 2350 2351 o new editor function pico() 2352 2353 o matrices and arrays can have zero extents 2354 2355BUG FIXES (many of which resulted from the added features...) 2356 2357 o atanh(.) now works 2358 2359 o summary(glm) and summary(lm) now use compatible names. 2360 2361 o [pq]tukey(.) now working. 2362 2363 o title() now handles main=, sub=, xlab=, ylab= with embedded 2364 newlines correctly. This is partly a change in title and 2365 partly a change in the underlying graphics code. 2366 2367 o min(.), max(.), sum(.) now return integer for integer arguments. 2368 2369 o which(.) now returns integer. 2370 2371 o Rd files: leading whitespace of lines in user-defined sections 2372 was not correctly removed by Rdconv 2373 2374 o sign(.) works again. 2375 2376 o [.data.frame segfaulted if arg. wasn't a data frame 2377 2378 o "R --no-readline" now again gives proper prompts. 2379 2380 o demos/zero.R dyn.load(.) now should be working more easily. 2381 2382 o mode(.) now returns "(" for a "parentheses 'call'". 2383 2384 o Bug fix in mva dist.c for method binary (gave "invalid 2385 distance"). plot.hclust failed for data without row names. 2386 2387 o R INSTALL should work (again) now when `pkg' is a relative file 2388 name. 2389 2390 o .not.yet.implemented() now takes an arbitrary number of args. 2391 2392 o Plotting of dendrograms is working again. 2393 2394 o data.frame(.) now uses "1:n" as default row.names. 2395 2396 o image(.) and contour(.) now also work called as, e.g., ``image(z)''. 2397 2398 o the first argument of axis(.) is now called `side' as in S. 2399 2400 o format(NULL) now works. 2401 2402 o minor fix in symnum. 2403 2404 o hist() now is more compatible to S, has a new `labels' argument, 2405 and should work ok for non-equidistant breaks. 2406 2407 o plot(-1) now labels properly. 2408 2409 o Many small code changes (eliminating extraneous variables, nested 2410 comm.) in C code in order to satisfy `gcc -Wall' [Doug Bates]. 2411 2412 o model.extract() will now extract arbitrary model frame arguments. 2413 2414 2415 o list of currently loaded libraries (.Dyn.libs) not saved 2416 from session to session (really, this time) 2417 2418 o rhyper works with vectorisation, degenerate cases. 2419 2420 o printing of objects in lists now dispatches methods correctly 2421 2422 CHANGES IN R VERSION 0.61.2 2423 2424BUG FIXES 2425 2426 o pretty(999) resulted in an infinite loop due to integer overflow. 2427 pretty(.) now sometimes returns different results than before. 2428 2429 o pi:6 returned integer, instead of real. 2430 2431 o [.data.frame caused segfault if called with non-dataframe argument 2432 2433 o hist() now is more compatible to S, has a new `labels' argument, 2434 and should work ok for non-equidistant breaks. 2435 2436 o lgamma(-1e7) segfaulted. 2437 gamma(.) and lgamma(.) now give proper results for negative integers. 2438 2439 o formatC(pi,dig=20,wid=2) segfaulted. 2440 2441 o quantile(..., pr = c(1,2,5)/1000) gave all names as "0%". 2442 2443 o In 0.61.1, model.matrix was fixed to pay attention to the names of 2444 the names of its data arg, but the data arg was defaulting to an 2445 unnamed list, so model.matrix(~x) failed... 2446 2447 o Indexing with [[]] and a zero-length vector segfaulted. 2448 2449 o Coercion of factors as in S-plus 2450 2451 o dyn.load statement in demos/dynload/zero.R fixed 2452 2453 o Factors could get allocated without the OBJECT bit, which 2454 nearly drove Kurt mad trying to write plot.factor... 2455 2456 o Fixed confidence limit problem in t.test 2457 2458 CHANGES IN R VERSION 0.61.1 2459 2460NEW FEATURES 2461 2462 o None (by definition, x.y.z releases are bugfix releases now) 2463 2464BUG FIXES 2465 2466 o Return statements of the form return(x,y) will now return 2467 a list with named components. 2468 2469 o Parsing of nested "if" statments was broken. This is fixed now. 2470 (Reported by Paul Gilbert). 2471 2472 o Wrong declaration of ConsoleBufCnt in src/main/scan.c caused crash 2473 in Irix (George White <gwhite@bodnext.bio.dfo.ca>) 2474 2475 o if(nmatch = 0) bug in src/main/character.c fixed (Doug Bates) 2476 2477 o R_alloc/S_alloc fixes. The former allocated 4 times more than 2478 needed, the latter zeroed half of what it got, sizeof() mistakes 2479 in both cases. 2480 2481 o c(ordered factor) caused segfault (uninitalised pointer), now 2482 fixed. 2483 2484 o behaviour of as.numeric() on factors changed recently; now 2485 documented. 2486 2487 o model.matrix() now pays attention to the names on its dataframe 2488 argument. 2489 2490 o Fixes to group methods. 2491 2492 o autoload() caused infinite loop if function wasn't found in 2493 library on loading 2494 2495 o The pager ate the rest of stdin in batch mode, now fixed. Also, 2496 stdout was not flushed before call to system(). "make tests" 2497 should work now. 2498 2499 o Empty directories now created by configure (so that it doesn't 2500 matter that "CVS export" doesn't do it) 2501 2502 o as.name() made idempotent (i.e. if is.name(x) then as.name(x)==x) 2503 2504 o 3 problems with glm, 2 in glm.fit and a one in print.glm fixed 2505 [Jim Lindsey] 2506 2507 o binomial (family) now works when 'n=0'. [J.Lindsey] 2508 2509 o split() now also works in split(1:10,1:2) 2510 2511 o strsplit() now also works for strsplit(c,NULL) 2512 2513 o A LANG='..' environment variable no longer affects scan()ing of 2514 numbers. 2515 2516 o seq(.) doesn't segfault anymore in gl(2,3):gl(1,6) 2517 2518 o contour(.) now also works with integer arguments 2519 2520 2521 CHANGES IN R VERSION 0.61 2522 2523We try to make development more flexible by creating a "CVS branch". This 2524should make it easier to produce patches for obvious bugs in the releases, 2525without having to wait for changes in other areas to stabilize. 2526 2527NEW FEATURES 2528 2529 o New functions "all.vars" and "all.names" added. 2530 2531 o There has been a small change in the include file structure. 2532 All include files now live in RHOME/src/include and are 2533 copied to RHOME/include when needed. 2534 2535 o The "noquote" functions are now documented. 2536 2537 o A new `language' demo, "is.things", is provided. 2538 2539 o symnum(.) function 2540 2541 o The files in R/library/base/data have had a .R suffix added. 2542 2543BUG_FIXES 2544 2545 o A nasty bug which showed when attempt was made to create 2546 a zero length call has been fixed. 2547 2548 o model.matrix(.) now allows a contrasts argument. 2549 2550 o barplot(.) now also works for barplot(table(rpois(100,3))). 2551 2552 o make clean ; make now should work; ./Makefile.in eliminated 2553 2554 o format(.) is now generic; the default method has a `digits' argument. 2555 2556 2557 CHANGES IN R VERSION 0.60.1 2558 2559NEW FEATURES 2560 2561 o "split" is now a generic function, with a method for data frames. 2562 (contributed by Doug Bates). 2563 2564 o S compatible functions "all.names" and "all.vars" added. 2565 2566 2567 2568BUG FIXES 2569 2570 o A file was closed multiple times if an error message occurred 2571 after sourcing a file. In some versions of Linux this caused 2572 a core dump. 2573 2574 o The inclusion <readline/history.h> was causing problems with 2575 some versions of readline because the file did not exist. 2576 This is now detected by configure. 2577 2578 2579 2580 CHANGES IN R VERSION 0.60 2581 2582R is about to become an official part of the GNU project. 2583To quote RMS (Richard Stallman) 2584 2585 ``I hereby dub R GNU software!'' 2586 2587 2588NEW FEATURES 2589 2590 o There has been a major change in directory structure 2591 masterminded by Kurt Hornik. 2592 library(.) now attaches ``package''s which are better 2593 integrated, see "?library". Packages may be available from outside 2594 the RHOME path via the .lib.loc variable. 2595 2596 o The documentation format (of files in src/library/<package>/man/ ) 2597 has changed to a more easily parsable LaTeX like format. 2598 The doc files now all end in `.Rd'. 2599 etc/Rman2Rd can be used to translate old-style documentation to 2600 the new one. 2601 The translation to *roff, LaTeX and HTML is now done using 2602 etc/Rdconv, written in Perl by Fritz Leisch. 2603 2604 The HTML online help produced has now links which work. 2605 The manual (in doc/manual/) now includes a section on the 2606 documentation format and on mathematical text in graphs. 2607 2608 etc/ further contains `Sd2Rd' for (partial) translation of S `.d' 2609 documentation to Rd, and 2610 `Rd2txt' and `Rd2dvi' for easy previewing of single Rd files. 2611 2612 o The use of "names" on one dimensional arrays will now produce 2613 sensible results. This means that for most purposes, 2614 one dimensional arrays can be treated like vectors. 2615 2616 o We have a applied a patch from mward@wolf.hip.berkeley.edu 2617 which should substantially improve the speed of (vector) 2618 arithmetic. 2619 2620 o The modeling formula handler has been expanded so that it 2621 accepts y ~ 0 + x as a "through the origin" specification. 2622 models with no parameters are now acceptable. 2623 2624 o "cov", "cor" and "var" now produce a matrix result if either 2625 of their x or y arguments is a matrix. Dimnames are propagated 2626 in a sensible fashion. 2627 2628 o New chisq.test(.) and prop.test() from Kurt Hornik. 2629 2630 o New read.fwf(.) for reading fixed width format (KH). 2631 2632 o New str(.) [alternative to summary(.) for programmers] (MM). 2633 2634 o New example data sets "esoph", "infert" and "anscombe" (TL), 2635 "iris3" (KH) and "stackloss" (MM). 2636 2637 o source(.) has several new arguments, notably ``echo = FALSE''. 2638 This is applied in the new function demo(.) which runs all the 2639 code in demos/ (but dynload). 2640 2641 o strheight(.) is new, accompanying strwidth(.). 2642 Both now work for mathematical expressions (Paul Murrell). 2643 2644 o The LaTeX version of the manual (-> doc/manual/) now has an index. 2645 2646 o EVERY *.Rd file in src/library/base/man/ has now at least one \keyword 2647 2648 o New package (`library(.)') "stepfun" for step functions, incl. 2649 empirical distributions. 2650 2651 2652BUG FIXES 2653 2654 o Regular expression matching is now done with system versions 2655 of the regexp library. This should fix compilation problems 2656 on some platforms. 2657 2658 o "approx" and "approxfun", have had some minor adjustments. 2659 which fix the interpretation of the rule= argument. The 2660 code for piecewise constant case is now internal C code 2661 that than interpreted. This should boost performance in 2662 this case. 2663 2664 o There has been a minor fixup of "model.frame" to ensure that 2665 subsets, weights, etc are handled properly. 2666 2667 o Model fitting of the form 2668 2669 lm(y~., data=df) 2670 glm(y~., data=df) 2671 2672 will now work. The RHS of the model will consist of an 2673 additive model containing all (non-response) variables in the 2674 given data frame. 2675 2676 o The following type of assignment to data frame subsets 2677 2678 z <- data.frame(x=rnorm(10),y=rnorm(10),z=rnorm(10)) 2679 z[,1:2] <- matrix(1:20,nc=2) 2680 2681 was producing incorrect results. The solution was to wrap 2682 an implicit "as.data.frame" around the RHS. 2683 2684 o "[.data.frame" no longer has a default drop=TRUE argument. 2685 This means that subsetting a data frame with "[" will always 2686 yield a data frame. 2687 2688 o There was a swap of coordinates internally in "mtext" which 2689 meant that labels were coming out in the wrong place. Fixed. 2690 2691 o Syntax errors in parse(text="...") would cause R to terminate 2692 with a segmentation violation. This no longer happens, although 2693 the result is still not perfect (the parse() returns). 2694 This will be fixed by a future parse rewrite. 2695 2696 o rainbow, topo.colors, etc., now also work with n in {1,2}; 2697 don't return duplicate neighbor colors anymore. 2698 2699 o legend has new `text.width' argument and now also works with 2700 mathematical expressions as text. 2701 2702 o hist() now works better, has a `plot = TRUE' argument, and returns 2703 something useful. 2704 2705 o barplot() improved for `names', now returns vector of midpoints. 2706 2707 o lm(), lm.fit, lm.wfit (was `lm.w.fit'): Made more compatible. 2708 Dealing with (close to) collinear situations is still not flexible 2709 enough. 2710 2711 o internal postscript() improved (missing lines in boxplot(.)). 2712 2713 o Improvement to many (even most ?) documentation (.Rd) files. 2714 2715 o Numerous other fixes of minor things ... 2716 2717 2718 2719 CHANGES IN R VERSION 0.50 2720 2721WARNING!!! 2722 2723 o A change in the way that "expressions" are implemented means that 2724 saved data images which contain expressions will probably not 2725 restore properly. 2726 2727NEW FEATURES 2728 2729 o The installation of documentation has now been streamlined. 2730 Many manual entries have been revised. 2731 2732 o "expressions" are now implemented as a basic type rather than as 2733 a class of object. This change was made as move toward compatibility 2734 with S and also to implement mathematical annotation in graphs. 2735 For some examples of the latter, see ?text and ?title. 2736 2737 o "eigen" can now handle complex and non-symmetric matrices. 2738 2739 o Libraries are now attached by loading their code into newly created 2740 environment frames on the search path rather than in with the general 2741 system code. This means that libraries can be unloaded as well as 2742 loaded. They can also have .First.lib and .Last.lib functions. 2743 The variable .Libraries has been replaced by .library() but should not 2744 be needed much anymore. 2745 2746 o There is now an experimental function called "delay" which creates 2747 a promise to evaluate an expression. This provides direct access 2748 to the lazy evaluation mechanism used by R. 2749 2750 o >>>> 'make tests' allows to test--run all the help() examples. 2751 2752 o New functions matplot / matpoints / matlines. 2753 2754 o cut has 2 new arguments. 'right = TRUE' gives intervals closed on the 2755 right, open to the left (as S); 'right = FALSE' allows to reverse 2756 this. The code for default label construction has been enhanced, 2757 and can be controlled by the new argument 'dig.lab'. 2758 2759 o legend(.) has 2 new arguments 'cex' (obvious) and 'merge = FALSE'. 2760 -> ?legend. 2761 o deparse has a 2nd argument allowing for a kind of line width. 2762 o There is now print.density (method). 2763 2764 o many help(.) pages have been updated with working examples, 2765 and several new ones have been created. 2766 2767 o influence.measures() and lm.influence now allow to get at the usual 2768 regression diagnostics. 2769 2770BUG FIXES 2771 2772 o The "is.object" function has been with drawn. 2773 2774 o A bug which prevented the "pictex" graphics driver from working 2775 has been fixed. 2776 2777 o Regression diagnostics obtained with "lm.influence" now work when 2778 there are weights. This means they should work for glms. 2779 2780 o There was a problem in parsing files from statements which were 2781 separated from following statements by ";" (e.g. data(iris); iris). 2782 This is fixed. 2783 2784 o Comments are handled better in functions. The rule is that they 2785 are shifted to just before their statements. Comments after the 2786 last statement of a function are lost. 2787 2788 o It is now possible to perform complicated mutations of expressions. 2789 For example 2790 e <- quote(f(x=1,y=2)) 2791 names(e)[[2]] <- "a" 2792 will change the x= argument tag into a=. In the past this produced 2793 odd error messages. 2794 2795 o The length function now tries to return a "sensible" value for all 2796 the built-in types. For example, symbols now have length 1. 2797 2798 o "update" should now work in both "lm" and "glm" models. 2799 2800 o The functions Re, Im, Mod, Arg and Conj will now accept real-valued 2801 arguments and return the obvious results. 2802 2803 o Minor graphics cleanup. 2804 2805 o A fix for convergence problems in glm from Thomas Lumley included. 2806 2807 o A new version of qt() should not take infinitely long to get an 2808 answer in the large degrees if freedom case. The underlying code 2809 (Hill 1970, CACM) appears to be much faster and more accurate than 2810 Splus. 2811 2812 o A final Newton step has been added to give a final "polish" to 2813 the quantiles produced by pnorm(). These should be close to full 2814 accuracy now. 2815 2816 o A bug in qbeta found by Martin Maechler has been fixed. This should 2817 speed up quantile computation for the F and Beta distributions. 2818 Further improvements in qbeta(.) by MM. No infinite loops anymore. 2819 2820 o rainbow(.) now allows "start > end" indexing the "color circle". 2821 topo.colors(n), terrain.colors(n), heat.colors(n) now also work for n=1,2. 2822 2823 o ?"+" now works. 2824 2825 o tapply has been fixed as indicated by T. Lumley. 2826