The newest version of R for Unix (version 0.50 alpha-1) is now (or will soon be) available from the following sites. NORTH AMERICA: http://lib.stat.cmu.edu/R/Alpha EUROPE: ftp://ftp.stat.math.ethz.ch/R/ ftp://statlab.uni-heidelberg.de/pub/mirrors/auckland/R/ JAPAN: ftp://ftp.u-aizu.ac.jp/pub/lang/R/ NEW ZEALAND: ftp://stat.auckland.ac.nz/pub/R/ Please obtain a copy from site close to you. Note that New Zealand is not close to anywhere other than itself :-). This is primarily a bug-fix release, although there is some new functionalty. As noted in the 0.49 release announcement, the primary goal at present is stability. This is partly for the benefit of anyone who might be using R, but also so that we we can bring the PC and Mac versions into sync with the Unix version. The "alpha-1" indicates that there may be a few stability problems with this version. This is because there are been a number of very low-level changes which have not been exercised as much as they might. We hope that these can be found and fixed in a couple of patch cycles. Then we will declare it to be "R-0.50 stable". This version owes a good deal to Martin Maechler who probably did as much bug-fixing as R+R together this time. R + R + M We have not kept good a records of bug fixes or updates the TASKS list (we should have this updated for the "stable" release). A partial list of changes follows. ------------------------------------------------------------------- CHANGES IN VERSION R VERSION 0.50 WARNING!!! o A change in the way that "expressions" are implemented means that saved data images which contain expressions will probably not restore properly. NEW FEATURES o "expressions" are now implemented as a basic type rather than as a class of object. This change was made as move toward compatibility with S and also to implement mathematical annotation in graphs. o "eigen" can now handle complex and non-symmetric matrices. o Libraries are now attached by loading their code into newly created environment frames on the search path rather than in with the general system code. This means that libraries can be unloaded as well as loaded. They can also have .First.lib and .Last.lib functions. o There is now an experimental function called "delay" which creates a promise to evaluate an expression. This provides direct access to the lazy evaluation mechanism used by R. o >>>> 'make tests' allows to test--run all the help() examples. o New functions matplot / matpoints / matlines. o cut has 2 new arguments. 'right = TRUE' gives intervals closed on the right, open to the left (as S); 'right = FALSE' allows to reverse this. The code for default label construction has been enhanced, and can be controlled by the new argument 'dig.lab'. o legend(.) has 2 new arguments 'cex' (obvious) and 'merge = FALSE'. -> ?legend. o deparse has a 2nd argument allowing for a kind of line width. o many help(.) pages have been updated with working examples, and several new ones have been created. BUG FIXES o A bug which prevented the "pictex" graphics driver from working has been fixed. o Regression diagnostics obtained with "lm.influence" now work when there are weights. This means they should work for glms. o There was a problem in parsing files from statements which were separated from following statements by ";" (e.g. data(iris); iris). This is fixed. o Comments are handled better in functions. The rule is that they are shifted to just before their statements. Comments after the last statement of a function are lost. o It is now possible to perform complicated mutations of expressions. For example e <- quote(f(x=1,y=2)) names(e)[[2]] <- "a" will change the x= argument tag into a=. In the past this produced odd error messages. o The length function now tries to return a "sensible" value for all the built-in types. For example, symbols now have length 1. o "update" should now work in both "lm" and "glm" models. o The functions Re, Im, Mod, Arg and Conj will now accept real-valued arguments and return the obvious results. o Minor graphics cleanup. o A fix for convergence problems in glm from Thomas Lumley included. o A new version of qt() should not take infinitely long to get an answer in the large degrees if freedom case. The underlying code (Hill 1970, CACM) appears to be much faster and more accurate than Splus. o A final Newton step has beed added to give a final "polish" to the quantiles produced by pnorm(). These should be close to full accuracy now. o A bug in qbeta found by Martin Maechler has been fixed. This should speed up quantile computation for the F and Beta distributions. o rainbow(.) now allows "start > end" indexing the "color circle". topo.colors(n), terrain.colors(n), heat.colors(n) now also work for n=1,2. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
FYI:>>>>> "Ross" == Ross Ihaka <ihaka@stat.auckland.ac.nz> writes:Ross> The newest version of R for Unix (version 0.50 alpha-1) is Ross> now (or will soon be) available from the following sites. Ross> NORTH AMERICA: Ross> http://lib.stat.cmu.edu/R/Alpha Exists at StatLib, compiles, runs most basic things (don't know about bugs), and seems to work under Solaris 2.5. (I'll try debian this afternoon at home while babysitting). best, -- -tony (Anthony Rossini) Statistics Dept., U South Carolina rossini@stat.sc.edu Columbia, SC 29208 http://www.stat.sc.edu/~rossini/ 803-777-3578(O) 803-777-4048 (fax) "'Bother,' said Pooh, as Cthulu rose up and ate him." =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>>>>> Ross Ihaka writes:> The newest version of R for Unix (version 0.50 alpha-1) is now (or will > soon be) available from the following sites.> ...R + R + M, Thanks for putting out the new version. Finally, it's back to testing (and porting) ... I have one immediate bug report. I think in R-0.50-a1/mansrc/latex/Rdoc.sty, \begin{list}{}\SetLmargin}% in the code for the Header environment must be \begin{list}{}\SetLmargin\item}% (Otherwise, make install-latex gives many errors.) Martin? A context diff is appended below. Also, in the data subdir, quakes and sunspots should have mode 644. -k *********************** *** mansrc/latex/Rdoc.sty.orig Wed Jul 23 17:03:46 1997 --- mansrc/latex/Rdoc.sty Wed Jul 23 17:03:56 1997 *************** *** 28,34 **** \makebox[1in][r]{\tt #1} \\ \hline \end{tabular} \end{center} ! \begin{list}{}\SetLmargin}% {\end{list}} \newenvironment{Arguments}[0]{ --- 28,34 ---- \makebox[1in][r]{\tt #1} \\ \hline \end{tabular} \end{center} ! \begin{list}{}\SetLmargin\item}% {\end{list}} \newenvironment{Arguments}[0]{ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
In the minor department, I see that you've worked around the .orig patch problem in src/library/base/Makefile. I know that I (and Martin) suggested that particular way of doing it, i.e. @cat `ls funs/[a-z]* | sed '/CVS/d; /~$$/d; /\.orig$$/d; /\.bak$$/d'` \ | sed '/^[ ]*$$/d' > ../../../library/base # ^^ = TAB + Space -- but on 2nd thought, wouldn't it be more logical simply to change the source file names to have suffix .R and use @cat *.R | sed ... The current way has all sorts of gotchas built in. What if Netscape dumps core when started in src/library/base/funs, e.g. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Ross Ihaka <ihaka@stat.auckland.ac.nz> writes:> NEW FEATURES > > o "expressions" are now implemented as a basic type rather than as > a class of object. This change was made as move toward compatibility > with S and also to implement mathematical annotation in graphs.Something looks wrong:> expression(2+2)expression(2 + 2)> expression(2+2)[[1]]expression(2 + 2)> expression(2+2)[[1]][[1]]expression(2 + 2) - How the blazes is a poor soul supposed to get at the parse tree for an expression? According to the docs, an expression is supposed to be a list of calls, but obviously> mode(expression(2+2)[[1]])[1] "expression" ---------- Another piece of weirdness:> t(table(0))Error: dimnames: number of dimensions must equal number of names # That one used to cause a segmentation fault (my bug report for it # seems to have fallen off of the TASKS list - bug suicide?)> t(as.matrix(table(0)))0 [1,] 1 # Looks OK now ... or is it? Watch:> ?lsWarning: invalid 'cutoff' for deparse, used default #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ List Objects ls(name, pos=2, envir=sys.frame(sys.parent()), all.names=FALSE, pattern) Same thing happens if you omit the 2nd expression. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>>>>> Ross Ihaka writes:> The newest version of R for Unix (version 0.50 alpha-1) is now (or > will soon be) available from the following sites.> ...Here are some comments on the new version. Actually, quite a few ... Hard to structure the whole thing nicely. * My R> x <- 1:5 R> dimnames(x)[1,2] <- NULL segfault in dimnames mutation appears as Open in TASKS, and as Closed in TASKS.OLD. * In R> D(expression(z * (log(z) /z)), "z") (log(z)/z) + z * (1/z/z - log(z)/z^2) the "1/z/z" is perhaps not optimal ... * TASKS has TASK: "chisquare.test" problem STATUS: Open FROM: <venkat@biosta.mskcc.org> Can you change the explicit "cat" statement in the "chisquare.test" function which insists on writing to the screen even when the output is redirected to a variable? (Using "htest" class as in "t.test" function.) [ Should we switch to the library one. ] As I already suggested, it would be nice to include all of ctest with the distribution proper. I have another question/suggestion re chisquare tests. Several of my functions in ctest now return "observed" and "expected" components. Would it be a good idea to print these automatically (if they exist) in print.htest? * In src/unix/system.c, one `Rdata' should be `RData' (d -> D). * No methods for as.data.frame exist! * How can I return from browser()? return() does not seem to work for me! * TASKS has TASK: abline + coefficients STATUS: Closed FROM: <nobu@psrc.isac.co.jp> I found a little different behavior of R with S. at R-0.49: > a [1] 12 23 22 34 44 54 55 70 78 > plot(a) > abline(lsfit(seq(1,len=length(a)), a)) Error: no applicable method for "coefficients" at S (from AT&T '92) result draw coefficient line without error. Then I think to need define a function as followed: coefficients.default <- function(x) x$coef [ Default method already added for Doug Bates. ] For me, this produces no error but abline does not produce any output for me. Can anyone check/confirm this? See also TASK: "abline" incompatibility STATUS: Open FROM: <nobu@psrc.isac.co.jp> and the * TASKS has TASK: ls.print STATUS: Open FROM: <maechler@stat.math.ethz.ch> Yes, I do confirm that the Help page (?NCOL) contains '.COL'. Apply the following patch (to doc2ms) in $RHOME/etc , and "all is well": This seems to be fine now. Martin? * The ls.print problem reported by <VENKAT@biosta.mskcc.org> seems to be gone now. (Still labeled as Open in TASKS). * Some of the "formula" problems in TASKS (<mikem@stat.cmu.edu>, <p.dalgaard@kubism.ku.dk> and <thomas@biostat.washington.edu> seem to be gone now. * Several of the graphics patches sent by <kovac@figaro.stats.bris.ac.uk> (labeled Open in TASKS) seem to have been taken care of already, in particular by integrating Martin's patches. Martin? * As a remark on TASK: String length problems STATUS: Closed FROM: <maechler@stat.math.ethz.ch> This is not a cat(.) but a string storing/parsing problem: nchar("\n\n") # gives 2 instead of 3 [ Hmmm. Was this typed to readline I wonder? There it ] [ seems that ^L must be escaped with ^V. Using the ANSI ] [ \f will now produce a literal formfeed. Indeed, using ] [ any of the ANSI C escapes will work. ] note that under ESS pre 4.9, R> nchar("\n\n") [1] 2 (empty line in between!), so "^L" needs to be escaped here too. (Same for single quotes.) * TASKS has TASK: Documentation Nit STATUS: Closed FROM: <Kurt.Hornik@ci.tuwien.ac.at> The documentation for ls/objects has ls(name, pos=2, envir=sys.frame(sys.parent()), all.names=FALSE, pattern) but the code has ls <- function (name, pos = -1, envir = NULL, all.files = FALSE, pattern) [ At one time these were equivalent. Are they still? ] However, the documentation is still unchanged! * Re TASK: "cat" problem STATUS: Closed FROM: <hornik@ci.tuwien.ac.at> * cat() is a bit inconsistent: ... [ This is the way S does it! ] Yes, I know that the current behavior is how S does it. Still, there are situations (as e.g. in the code for write.table) where I'd like to have the different behavior. Could we have an extra option to cat() which suppresses a final newline even if sep contains a newline? * It seems that S allows recycling when subscripting with logicals, but R does not. E.g., R> x <- 1:5 R> x [1] 1 2 3 4 5 R> i <- c(F, T) R> x[i] Error: invalid subscript type R> In S, this is treated as x[rep(i, length = length(x))]. * It also seems that S does not worry about excluding subscripts which are out of bounds. In the above, x[-6] would give x, but in R R> x[-6] Error: subscript out of bounds * There is a problem with tapply() in the case where INDEX is a factor with at least one of its levels not occurring in it. In this case, namelist[[i]] <- levels(index) gets all levels but group <- group + ngroup * (codes(index) - 1) only those occurring in index, which subsequently causes names(ans) <- namelist[[1]] to fail. For example, R> f <- factor(c("a", "a", "b"), levels = letters[1:3]) R> f [1] a a b R> codes(f) [1] 1 1 2 R> levels(f) [1] "a" "b" "c" which gives e.g. R> tapply(rep(1, length(f)), f, sum) Error: names attribute must be the same length as the vector One solution is to replace namelist[[i]] <- levels(index) by namelist[[i]] <- unique(levels(index)[index]) but perhaps there is something smarter ... * The `shortest program to produce a segfault' now gives: R> t(table(1)) Error: dimnames: number of dimensions must equal number of names (See Peter's mail for the consecutive deparse warnings ...) * Please add family.lm <- function (object) { gaussian() } to the base library. -k =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Errors in batch mode no longer cause a stack imbalance but they do cause execution to be halted. Is this a feature? It makes it harder to run test code on new releases. Thomas Lumley ------------------------------------------------------+------ Biostatistics : "Never attribute to malice what : Uni of Washington : can be adequately explained by : Box 357232 : incompetence" - Hanlon's Razor : Seattle WA 98195-7232 : : ------------------------------------------------------------ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Peter Dalgaard BSA writes: > Ross Ihaka <ihaka@stat.auckland.ac.nz> writes: > > > NEW FEATURES > > > > o "expressions" are now implemented as a basic type rather than as > > a class of object. This change was made as move toward compatibility > > with S and also to implement mathematical annotation in graphs. > > Something looks wrong: > > > expression(2+2) > expression(2 + 2) > > expression(2+2)[[1]] > expression(2 + 2) > > expression(2+2)[[1]][[1]] > expression(2 + 2) > > - How the blazes is a poor soul supposed to get at the parse tree for > an expression? According to the docs, an expression is supposed to be > a list of calls, but obviously Oops sorry. Incomplete implementation. I have a fix for this now as will as fixes for mutations of expressions of the form > e <- expression(x+y) > e[[1]][[1]] <- as.name("f") I hope to have patches and an "a2" release later this week. Ross =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-