home *** CD-ROM | disk | FTP | other *** search
- THE R TASK LIST
-
- ``Somebody, somebody has to, you see ...''
- The Cat in the Hat Comes Back.
-
-
- ----------------------------------------------------------------------
- TASK: Multiple Graphics Device Drivers
- STATUS: Open
- FROM: Everyone
- R needs to have mutiple active device drivers and a means for
- copying pictures from one device to another. Etc. Etc.
- [ This is a medium-sized task. It would be most useful to ]
- [ do this in conjunction with moving to an event driven model. ]
- [ Greg Warnes has written some code which maintains, a device ]
- [ "display list". How much memory this might devour in the ]
- [ multiple device case is an open question. There is also ]
- [ the question of what to do about the graphics parameters. ]
- [ Should each device maintain a complete "par" state, or ]
- [ should some parameters (like col, lty, font ...) be global. ]
- [ Could a user have any memory of the last values in effect ]
- [ for a driver which had been idle for a while. ]
-
- ----------------------------------------------------------------------
- TASK: Mathlib checks
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- The numerical libraries and random number generators could
- do with a real had check. Grunt work, but necessary.
-
- ----------------------------------------------------------------------
- TASK: List printing
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- If an attribute is list valued, its components should print
- as follows.
- attr(,fred)$x
- rather than as
- attr(,fred)
- $x
-
- ----------------------------------------------------------------------
- TASK: complex gamma and log gamma function not implemented
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- [ This is quite low priority. Complain if you need it. ]
- [ The Fullerton library has complex gamma function code. ]
-
- ----------------------------------------------------------------------
- TASK: solution of complex linear systems
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- [ Really just a matter of grabbing the correct linpack code. ]
-
- ----------------------------------------------------------------------
- TASK: eigenvalues and eigenvectors for general systems
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- [ Really just a matter of grabbing the correct eispack code. ]
-
- ----------------------------------------------------------------------
- TASK: "update" for lm and glm models
- STATUS: Open
- FROM: jlindsey@luc.ac.be
- First something from 0.12 that I forgot to report:
- update() for a formula works with lm() but not glm()
- for which it (still in 0.13) gives
- "Error in update.formula(call$formula,formula) ..."
-
- ----------------------------------------------------------------------
- TASK: "nlm" documentation inaccuracies
- STATUS: Open
- FROM: jlindsey@luc.ac.be
- The help for nlm is still called minimize although the
- contents have been updated. As well, when an illegal
- value is fed to nlm, the error message contains msg
- instead of print.level.
- [ The documentation looks ok. The function needs to be ]
- [ rewritten so that it uses derivative information. ]
-
- ----------------------------------------------------------------------
- TASK: "data.entry" problems
- STATUS: Open
- FROM: p.dalgaard@kubism.ku.dk
- the as.character problem in de() - probably better to fix even
- though it does make lists out of frames.
- there's no way to change a data value to NA in data.entry, etc.
- ... earlier message ...
- (Peter Dalgaard) data.entry et al do not seem to have been
- adjusted for the new data frame structure. This is actually
- a problem where a list is passed where a vector of character
- strings is expected. To fix it change
- snames <- substitute(list(...))[-1]
- to
- snames <- as.character(substitute(list(...))[-1])
- However, there needs to be a look at the de... code. When
- a data frame is edited it is returned as a list. This can
- be cured with judicious use of "data.frame".
- [ The indicated change has been made, but other changes ]
- [ are needed. ]
-
- ----------------------------------------------------------------------
- TASK: "x11" printcommand
- STATUS: Open
- FROM: maechler@stat.math.ethz.ch
- There is in theory a "printcommand" argument to x11, which
- is ignored. Make it do something.
-
- ----------------------------------------------------------------------
- TASK: "source" requires a terminating newline on EOF
- STATUS: Open
- FROM: Kurt.Hornik@ci.tuwien.ac.at
- source() fails in many cases where a file has no final
- newline. (R&R, sorry for being ridiculouly nasty about
- things that don't work for files without a final newline.
- I have Emacs' next-line-add-newlines set to nil ...)
- This seems to be a problem with parse() in src/main/source.c
- in combo with the code in gram.y ...
- I know this is NOT something to quickly fix over the weekend.
- Please simply put it into your PROJECTS file.
-
- ----------------------------------------------------------------------
- TASK: problem with "glm" with binomial errors
- STATUS: Open
- FROM: p.dalgaard@kubism.ku.dk
- in glm(,binomial) it's possible that loss of significant
- digits make expected values 0 or 1 even though there's no
- divergence of the fit. (Happened to me with menarche data,
- infants and grown-ups included)
- [ Need the example data. Glm needs a complete overhaul. ]
-
- ----------------------------------------------------------------------
- TASK: Errors in "parse" and "source"
- STATUS: Open
- FROM: plummer@iarc.fr
- #4) If you put a few lines of comments at the start of a
- function, then the comments always appear *after* the first
- line of code.
- [ This needs a bit of a look. Comments are a pain. ]
-
- ----------------------------------------------------------------------
- TASK: help file ALIAS() and LINK() constructions
- STATUS: Open
- FROM: R@stat.auckland.ac.nz
- How do we know which file to LINK to? There needs to a step
- which fills in the file name on the basis of all ALIAS
- declarations.
- [ A proprocessing step is needed. First we build a table ]
- [ of aliases and corresponding file names. Then we pass ]
- [ throught the files building the correct LINK references. ]
-
- ----------------------------------------------------------------------
- TASK: "paste" problem
- STATUS: Open
- FROM: maechler@stat.math.ethz.ch
- in S,
- paste(....., collapse = string)
- always returns ONE string (a character vector of length 1),
- according to documentation and several examples.
- in R, this is not true:
- R> paste(rep(" ",0), collapse="...") #anything for collapse
- character(0)
- S> paste(rep(" ",0), collapse="...") #anything for collapse
- [1] ""
- Again, I think R is more logical than S here, but it was decided
- that in minor cases, compatibility comes first...
- [ Low priority. Complain if you really need it. ]
-
- ----------------------------------------------------------------------
- TASK: missing functionality - modelling
- STATUS: Open
- FROM: maechler@stat.math.ethz.ch
- aov, print.aov, summary.aov,... (!)
- which I really missed for teaching a few months ago.
- [ We'll get to this - it actually should be fun. ]
-
- ----------------------------------------------------------------------
- TASK: warnings option
- STATUS: Open
- FROM: maechler@stat.math.ethz.ch
- which reminds me that we/I also would like something similar as S's
- options(warn = k)
- k= 0 : [default] print warnings
- k= -1 : do nothing (maybe append warnings to some temp-file)
- k= 1 : produce an error ('warning' becomes 'stop').
-
- ----------------------------------------------------------------------
- TASK: R has no stderr
- STATUS: Open
- FROM: Friedrich.Leisch@ci.tuwien.ac.at
- When I invoke R like
- R 2>errlog
- I would error messages expect to go to the file errlog
- instead of the screen.
- [ We don't have standard error. This is problematic on ]
- [ platforms other than Unix.
-
-
- ----------------------------------------------------------------------
- TASK: deprecated
- STATUS: Open
- FROM: maechler@stat.math.ethz.ch
- As I mentioned in a recent mail,
- I just saw that 0.16.1 does not contain 'deprecated' anymore,
- even though the function still exists.
- [ I don't think we need deprecated anymore. ]
-
- ----------------------------------------------------------------------
- TASK: "print.default" fix
- STATUS: Open
- FROM: la-jassine@aix.pacwan.net
- When you fix print.default, please also add prefix=
-
- ----------------------------------------------------------------------
- TASK: "postscript" fix
- STATUS: Open
- FROM: la-jassine@aix.pacwan.net
- postscript() also needs the options onefile, print.it, and
- append (even if they are not supported yet it would be nice if
- the arguments could be accepted and ignored).
- [ I added these as arguments, but they have no effect. ]
-
- ----------------------------------------------------------------------
- TASK: "print.default" fix
- STATUS: Open
- FROM: jlindsey@luc.ac.be
- print.default in S has an option, right=T, but R does not
-
- ----------------------------------------------------------------------
- TASK: task scheduling
- STATUS: Open
- FROM: gwhite@cabot.bio.dfo.ca
- More generally, the range of things that can be done in R would
- be greater if there was a simple scheduling mechanism. Is
- there a way to have a specific function invoked just before the
- command prompt returns after a function? Such a function could
- be used to run save(...) or check for various external cues
- (update of a file's timestamp) to control an analysis.
- I doubt it would make sense to have full context switching in
- R, but perhaps save() could be done in a way that would allow
- it to be used even in a long calculation under some timer
- control. I expect the user would need to provide a list of the
- data objects that need to be saved.
-
- ----------------------------------------------------------------------
- TASK: Inf numerics
- STATUS: Open
- FROM: plummer@iarc.fr
- Could we have an Inf object in R? I would find it useful.
- [ Sigh. I wish we had designed this in. ]
- [ It will be a pain to ADD. ]
-
- ----------------------------------------------------------------------
- TASK: Verbose debugging mode
- STATUS: Open
- FROM: plummer@iarc.fr
- It would be really nice to have a verbose mode for the debug
- function, which steps through each line automatically while
- printing each line to the screen. Currently I have to step
- through each line with the return key just to see where CODA
- crashes. This can get very tedious as its a huge program.
-
- ----------------------------------------------------------------------
- TASK: Auto-save
- STATUS: Open
- FROM: <p.dalgaard@kubism.ku.dk> <hornik@ci.tuwien.ac.at>
- > BTW: How about putting auto-save-workspace on the task list?
- > Or just a manual save.work() currently, you can lose quite a
- > bit of work to an unexpected segfault. (And q()+restart is
- > cumbersome, esp. if you need to reattach subsetted dataframes, etc.)
- Perhaps call it save.image() instead and use
- save(list = ls(), file = ".RData")
- as was suggested some time ago?
- (Whatever the result is, it needs to go in the FAQ, which goes into
- great length about that under R data can get lost when a crash occurs,
- but does not say how to save them ...)
-
- ----------------------------------------------------------------------
- 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. ]
-
- ----------------------------------------------------------------------
- TASK: Graphics inconsistencies
- STATUS: Openish
- FROM: Bill.Venables@adelaide.edu.au
- While transferring some old S-code I came across some minor
- inconsistencies between R and S that are probably more nuisance
- value than they would take to fix. I report them here for
- reference, (but not in any campaigning mood, of course...)
- 1. No frame() command in R and so no graceful way to clear a
- plotting screen. (Or is there?)
- [ Added ]
- 2. There is a dev.off() function, but no other dev.xxx functions.
- (The dev.xxx group are S-PLUS and not vanilla S, by the way.)
- There is no graphics.off() function.
- [ Long-term project ]
- 3. If dfr is a data frame with components "x", "y" and some
- others then points(dfr) uses dfr as an xy-list in S but not in
- R. If there is some non-numeric component it actually fails
- in R. This may be S being a bit inconsistent, but the
- behaviour is different.
- [ Fixed? ]
- 4. The plotting marks are a bit gappy in R and even the ones
- that are there do not correspond to their S counterparts.
- Here is a little function to make a wall chart showing the
- gaps:
- [ We now have all the S symbols and a new set of R ones. ]
- show.marks <- function()
- {
- if(!exists(".Device") || is.null(.Device)) x11()
- plot(1, type="n", axes=F, xlab="", ylab="")
- oldpar <- par()
- par(usr = c(-0.01, 5.01, -0.01, 5.01), pty = "s")
- for(i in 0:18) {
- x <- 1/2 + (i %% 5)
- y <- 4.5 - (1/2 + (i %/% 5))
- points(x + 1/5, y - 1/5, pch = i, cex = 3)
- text(x - 1/5, y + 1/5, i, adj = 0.5, cex = 1.5)
- }
- abline(h = 1:5 - 0.5, lty = 1)
- segments(0:5, rep(0.5, 5), 0:5, rep(4.5, 5))
- par(oldpar)
- invisible()
- }
- 5. In S you may extend a list by assigning to a new component.
- For example if lis has components "x" and "y", only, you can
- extend it by assigning to lis$z, lis["z"] or lis[, "z] (the
- last if it is also a data frame). In R only the first of
- these works; the others give a "subscript out of bounds"
- error. (This may have been discussed while I was not paying
- attention, in which case I apologize.)
- [ Fixed in 0.50. ]
-
- ----------------------------------------------------------------------
- TASK: Function pointer access
- STATUS: Open
- FROM: <schwarte@feat.mathematik.uni-essen.de>
- I want to report two problems with the Fortran code of R.
- 1) Configure does not adapt GETSYMBOLS.in if the Fortran Compiler
- does not add underscores to the symbol names.
- 2) There is a name conflict if the Fortran Compiler does not add
- underscores because there exist a Fortran function FMIN and a
- C function fmin(). Thus the name of the Fortran FMIN should be
- changed.
- [ This is fixed I think. ]
- Currently I am rewriting my robust location-scale code in C. I
- intend to make this new code available as a library once a
- standard for such libraries has been agreed upon. As I would
- like to allow prospective users to experiment with private
- psi/chi functions I need access to the hash table of available
- function pointers. Is it possible that you insert a function
- into dotcode.c that contains the code fragment form lines 482
- to 495 and returns a function pointer?
-
- ----------------------------------------------------------------------
- TASK: Partial string matching
- STATUS: Open
- FROM: <R@stat.auckland.ac.nz>
- Is there an existing partial string match function which could
- be used in place of pstrmatch in subset.c???
- If not can pstrmatch take on the functions of all partial match
- functions?
-
- ----------------------------------------------------------------------
-