home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / NEXTSTEP / UNIX / Educational / R-0.49-MI / R-0.49-I / TASKS < prev    next >
Encoding:
Text File  |  1997-04-21  |  14.9 KB  |  371 lines

  1.                            THE R TASK LIST
  2.  
  3.              ``Somebody, somebody has to, you see ...''
  4.                   The Cat in the Hat Comes Back.
  5.  
  6.  
  7. ----------------------------------------------------------------------
  8. TASK:    Multiple Graphics Device Drivers
  9. STATUS:    Open
  10. FROM:    Everyone
  11.     R needs to have mutiple active device drivers and a means for
  12.     copying pictures from one device to another. Etc. Etc.
  13.     [ This is a medium-sized task.  It would be most useful to     ]
  14.     [ do this in conjunction with moving to an event driven model. ]
  15.     [ Greg Warnes has written some code which maintains, a device  ]
  16.     [ "display list".  How much memory this might devour in the    ]
  17.     [ multiple device case is an open question.  There is also     ]
  18.     [ the question of what to do about the graphics parameters.    ]
  19.     [ Should each device maintain a complete "par" state, or       ]
  20.     [ should some parameters (like col, lty, font ...) be global.  ]
  21.     [ Could a user have any memory of the last values in effect    ]
  22.     [ for a driver which had been idle for a while.                ]
  23.  
  24. ----------------------------------------------------------------------
  25. TASK:    Mathlib checks
  26. STATUS:    Open
  27. FROM:    R@stat.auckland.ac.nz
  28.     The numerical libraries and random number generators could
  29.     do with a real had check.  Grunt work, but necessary.
  30.  
  31. ----------------------------------------------------------------------
  32. TASK:    List printing
  33. STATUS:    Open
  34. FROM:    R@stat.auckland.ac.nz
  35.     If an attribute is list valued, its components should print
  36.     as follows.
  37.         attr(,fred)$x
  38.     rather than as
  39.         attr(,fred)
  40.         $x
  41.  
  42. ----------------------------------------------------------------------
  43. TASK:    complex gamma and log gamma function not implemented
  44. STATUS:    Open
  45. FROM:    R@stat.auckland.ac.nz
  46.     [ This is quite low priority.  Complain if you need it.  ]
  47.     [ The Fullerton library has complex gamma function code. ]
  48.  
  49. ----------------------------------------------------------------------
  50. TASK:    solution of complex linear systems
  51. STATUS:    Open
  52. FROM:    R@stat.auckland.ac.nz
  53.     [ Really just a matter of grabbing the correct linpack code. ]
  54.  
  55. ----------------------------------------------------------------------
  56. TASK:    eigenvalues and eigenvectors for general systems
  57. STATUS:    Open
  58. FROM:    R@stat.auckland.ac.nz
  59.     [ Really just a matter of grabbing the correct eispack code. ]
  60.  
  61. ----------------------------------------------------------------------
  62. TASK:    "update" for lm and glm models
  63. STATUS:    Open
  64. FROM:    jlindsey@luc.ac.be
  65.     First something from 0.12 that I forgot to report:
  66.     update() for a formula works with lm() but not glm()
  67.     for which it (still in 0.13) gives
  68.     "Error in update.formula(call$formula,formula) ..."
  69.  
  70. ----------------------------------------------------------------------
  71. TASK:    "nlm" documentation inaccuracies
  72. STATUS:    Open
  73. FROM:    jlindsey@luc.ac.be
  74.     The help for nlm is still called minimize although the
  75.     contents have been updated. As well, when an illegal
  76.     value is fed to nlm, the error message contains msg
  77.     instead of print.level.
  78.     [ The documentation looks ok.  The function needs to be ]
  79.     [ rewritten so that it uses derivative information.     ]
  80.  
  81. ----------------------------------------------------------------------
  82. TASK:    "data.entry" problems
  83. STATUS:    Open
  84. FROM:    p.dalgaard@kubism.ku.dk
  85.     the as.character problem in de() - probably better to fix even
  86.     though it does make lists out of frames.
  87.     there's no way to change a data value to NA in data.entry, etc.
  88.     ... earlier message ...
  89.     (Peter Dalgaard) data.entry et al do not seem to have been
  90.     adjusted for the new data frame structure.  This is actually
  91.     a problem where a list is passed where a vector of character
  92.     strings is expected.  To fix it change
  93.         snames <- substitute(list(...))[-1]
  94.     to
  95.         snames <- as.character(substitute(list(...))[-1])
  96.     However, there needs to be a look at the de... code.  When
  97.     a data frame is edited it is returned as a list.  This can
  98.     be cured with judicious use of "data.frame".
  99.     [ The indicated change has been made, but other changes ]
  100.     [ are needed.                                           ]
  101.  
  102. ----------------------------------------------------------------------
  103. TASK:    "x11" printcommand
  104. STATUS: Open
  105. FROM:    maechler@stat.math.ethz.ch
  106.     There is in theory a "printcommand" argument to x11, which
  107.     is ignored.  Make it do something.
  108.  
  109. ----------------------------------------------------------------------
  110. TASK:    "source" requires a terminating newline on EOF
  111. STATUS:    Open
  112. FROM:    Kurt.Hornik@ci.tuwien.ac.at
  113.     source() fails in many cases where a file has no final
  114.     newline.  (R&R, sorry for being ridiculouly nasty about
  115.     things that don't work for files without a final newline.
  116.     I have Emacs' next-line-add-newlines set to nil ...)
  117.     This seems to be a problem with parse() in src/main/source.c
  118.     in combo with the code in gram.y ...
  119.     I know this is NOT something to quickly fix over the weekend.
  120.     Please simply put it into your PROJECTS file.
  121.  
  122. ----------------------------------------------------------------------
  123. TASK:    problem with "glm" with binomial errors
  124. STATUS:    Open
  125. FROM:    p.dalgaard@kubism.ku.dk
  126.     in glm(,binomial) it's possible that loss of significant
  127.     digits make expected values 0 or 1 even though there's no
  128.     divergence of the fit.  (Happened to me with menarche data,
  129.     infants and grown-ups included)
  130.     [ Need the example data.  Glm needs a complete overhaul. ]
  131.  
  132. ----------------------------------------------------------------------
  133. TASK:    Errors in "parse" and "source"
  134. STATUS:    Open
  135. FROM:    plummer@iarc.fr
  136.     #4) If you put a few lines of comments at the start of a
  137.     function, then the comments always appear *after* the first
  138.     line of code.
  139.     [ This needs a bit of a look.  Comments are a pain. ]
  140.  
  141. ----------------------------------------------------------------------
  142. TASK:    help file ALIAS() and LINK() constructions
  143. STATUS:    Open
  144. FROM:    R@stat.auckland.ac.nz
  145.     How do we know which file to LINK to?  There needs to a step
  146.     which fills in the file name on the basis of all ALIAS
  147.     declarations.
  148.     [ A proprocessing step is needed.  First we build a table  ]
  149.     [ of aliases and corresponding file names.  Then we pass   ]
  150.     [ throught the files building the correct LINK references. ]
  151.  
  152. ----------------------------------------------------------------------
  153. TASK:    "paste" problem
  154. STATUS:    Open
  155. FROM:    maechler@stat.math.ethz.ch
  156.     in S,
  157.         paste(....., collapse = string)
  158.     always returns ONE string  (a character vector of length 1),
  159.     according to documentation and several examples.
  160.     in R, this is not true:
  161.         R> paste(rep(" ",0), collapse="...") #anything for collapse
  162.         character(0)
  163.         S> paste(rep(" ",0), collapse="...") #anything for collapse
  164.         [1] ""
  165.     Again, I think  R  is more logical than S here, but it was decided
  166.     that in minor cases, compatibility comes first...
  167.     [ Low priority.  Complain if you really need it. ]
  168.  
  169. ----------------------------------------------------------------------
  170. TASK:    missing functionality - modelling
  171. STATUS:    Open
  172. FROM:    maechler@stat.math.ethz.ch
  173.     aov,  print.aov, summary.aov,...  (!)
  174.     which I really missed for teaching  a few months ago.
  175.     [ We'll get to this - it actually should be fun. ]
  176.  
  177. ----------------------------------------------------------------------
  178. TASK:    warnings option
  179. STATUS:    Open
  180. FROM:    maechler@stat.math.ethz.ch
  181.     which reminds me that we/I also would like something similar as S's
  182.     options(warn = k)
  183.     k=  0 : [default]  print warnings
  184.     k= -1 :    do nothing (maybe append warnings to some temp-file)
  185.     k=  1 : produce an error ('warning' becomes 'stop'). 
  186.  
  187. ----------------------------------------------------------------------
  188. TASK:    R has no stderr
  189. STATUS:    Open
  190. FROM:    Friedrich.Leisch@ci.tuwien.ac.at
  191.     When I invoke R like
  192.         R 2>errlog
  193.     I would error messages expect to go to the file errlog
  194.     instead of the screen.
  195.     [ We don't have standard error.  This is problematic on ]
  196.     [ platforms other than Unix.                            
  197.  
  198.  
  199. ----------------------------------------------------------------------
  200. TASK:    deprecated
  201. STATUS:    Open
  202. FROM:    maechler@stat.math.ethz.ch
  203.     As I mentioned in a recent mail,
  204.     I just saw that  0.16.1 does not contain  'deprecated' anymore,
  205.     even though the function still exists.
  206.     [ I don't think we need deprecated anymore. ]
  207.  
  208. ----------------------------------------------------------------------
  209. TASK:    "print.default" fix
  210. STATUS:    Open
  211. FROM:    la-jassine@aix.pacwan.net
  212.     When you fix print.default, please also add prefix=
  213.  
  214. ----------------------------------------------------------------------
  215. TASK:    "postscript" fix
  216. STATUS:    Open
  217. FROM:    la-jassine@aix.pacwan.net
  218.     postscript() also needs the options onefile, print.it, and
  219.     append (even if they are not supported yet it would be nice if
  220.     the arguments could be accepted and ignored).
  221.     [ I added these as arguments, but they have no effect. ]
  222.  
  223. ----------------------------------------------------------------------
  224. TASK:    "print.default" fix
  225. STATUS:    Open
  226. FROM:    jlindsey@luc.ac.be
  227.     print.default in S has an option, right=T, but R does not
  228.  
  229. ----------------------------------------------------------------------
  230. TASK:    task scheduling
  231. STATUS:    Open
  232. FROM:    gwhite@cabot.bio.dfo.ca
  233.     More generally, the range of things that can be done in R would
  234.     be greater if there was a simple scheduling mechanism.  Is
  235.     there a way to have a specific function invoked just before the
  236.     command prompt returns after a function?  Such a function could
  237.     be used to run save(...) or check for various external cues
  238.     (update of a file's timestamp) to control an analysis.
  239.     I doubt it would make sense to have full context switching in
  240.     R,  but perhaps save() could be done in a way that would allow
  241.     it to be used even in a long calculation under some timer
  242.     control.  I expect the user would need to provide a list of the
  243.     data objects that need to be saved.
  244.  
  245. ----------------------------------------------------------------------
  246. TASK:    Inf numerics
  247. STATUS:    Open
  248. FROM:    plummer@iarc.fr
  249.     Could we have an Inf object in R? I would find it useful.
  250.     [ Sigh.  I wish we had designed this in. ]
  251.     [ It will be a pain to ADD.              ]
  252.  
  253. ----------------------------------------------------------------------
  254. TASK:    Verbose debugging mode
  255. STATUS:    Open
  256. FROM:    plummer@iarc.fr
  257.     It would be really nice to have a verbose mode for the debug
  258.     function, which steps through each line automatically while
  259.     printing each line to the screen. Currently I have to step
  260.     through each line with the return key just to see where CODA
  261.     crashes.  This can get very tedious as its a huge program.
  262.  
  263. ----------------------------------------------------------------------
  264. TASK:    Auto-save
  265. STATUS:    Open
  266. FROM:    <p.dalgaard@kubism.ku.dk> <hornik@ci.tuwien.ac.at>
  267.     > BTW: How about putting auto-save-workspace on the task list?
  268.     > Or just a manual save.work() currently, you can lose quite a
  269.     > bit of work to an unexpected segfault. (And q()+restart is
  270.     > cumbersome, esp. if you need to reattach subsetted dataframes, etc.)
  271.     Perhaps call it save.image() instead and use
  272.         save(list = ls(), file = ".RData")
  273.     as was suggested some time ago?
  274.     (Whatever the result is, it needs to go in the FAQ, which goes into
  275.     great length about that under R data can get lost when a crash occurs,
  276.     but does not say how to save them ...)
  277.  
  278. ----------------------------------------------------------------------
  279. TASK:    "chisquare.test" problem
  280. STATUS:    Open
  281. FROM:    <venkat@biosta.mskcc.org>
  282.     Can you change the explicit "cat" statement in the
  283.     "chisquare.test" function which insists on writing to the
  284.     screen even when the output is redirected to a variable? (Using
  285.     "htest" class as in "t.test" function.)
  286.     [ Should we switch to the library one. ]
  287.  
  288. ----------------------------------------------------------------------
  289. TASK:    Graphics inconsistencies
  290. STATUS: Openish
  291. FROM:    Bill.Venables@adelaide.edu.au
  292.     While transferring some old S-code I came across some minor
  293.     inconsistencies between R and S that are probably more nuisance
  294.     value than they would take to fix.  I report them here for
  295.     reference, (but not in any campaigning mood, of course...)
  296.     1. No frame() command in R and so no graceful way to clear a
  297.        plotting screen.  (Or is there?)
  298.        [ Added ]
  299.     2. There is a dev.off() function, but no other dev.xxx functions.
  300.        (The dev.xxx group are S-PLUS and not vanilla S, by the way.)
  301.        There is no graphics.off() function.
  302.        [ Long-term project ]
  303.     3. If dfr is a data frame with components "x", "y" and some
  304.        others then points(dfr) uses dfr as an xy-list in S but not in
  305.        R.  If there is some non-numeric component it actually fails
  306.        in R.  This may be S being a bit inconsistent, but the
  307.        behaviour is different.
  308.        [ Fixed? ]
  309.     4. The plotting marks are a bit gappy in R and even the ones
  310.        that are there do not correspond to their S counterparts.
  311.        Here is a little function to make a wall chart showing the
  312.        gaps:
  313.        [ We now have all the S symbols and a new set of R ones. ]
  314.         show.marks <- function()
  315.         {
  316.           if(!exists(".Device") || is.null(.Device)) x11()
  317.           plot(1, type="n", axes=F, xlab="", ylab="")
  318.           oldpar <- par()
  319.           par(usr = c(-0.01, 5.01, -0.01, 5.01), pty = "s")
  320.           for(i in 0:18) {
  321.             x <- 1/2 + (i %% 5)
  322.             y <- 4.5 - (1/2 + (i %/% 5))
  323.             points(x + 1/5, y - 1/5, pch = i, cex = 3)
  324.             text(x - 1/5, y + 1/5, i, adj = 0.5, cex = 1.5)
  325.           }
  326.           abline(h = 1:5 - 0.5, lty = 1)
  327.           segments(0:5, rep(0.5, 5), 0:5, rep(4.5, 5))
  328.           par(oldpar)
  329.           invisible()
  330.         }
  331.     5. In S you may extend a list by assigning to a new component.
  332.        For example if lis has components "x" and "y", only, you can
  333.        extend it by assigning to lis$z, lis["z"] or lis[, "z] (the
  334.        last if it is also a data frame).  In R only the first of
  335.        these works; the others give a "subscript out of bounds"
  336.        error.  (This may have been discussed while I was not paying
  337.        attention, in which case I apologize.)
  338.        [ Fixed in 0.50. ]
  339.  
  340. ----------------------------------------------------------------------
  341. TASK:    Function pointer access
  342. STATUS:    Open
  343. FROM:    <schwarte@feat.mathematik.uni-essen.de>
  344.     I want to report two problems with the Fortran code of R.
  345.     1) Configure does not adapt GETSYMBOLS.in if the Fortran Compiler
  346.        does not add underscores to the symbol names.
  347.     2) There is a name conflict if the Fortran Compiler does not add
  348.        underscores because there exist a Fortran function FMIN and a 
  349.        C function fmin(). Thus the name of the Fortran FMIN should be 
  350.        changed.
  351.        [ This is fixed I think. ]
  352.     Currently I am rewriting my robust location-scale code in C. I
  353.     intend to make this new code available as a library once a
  354.     standard for such libraries has been agreed upon. As I would
  355.     like to allow prospective users to experiment with private
  356.     psi/chi functions I need access to the hash table of available
  357.     function pointers. Is it possible that you insert a function
  358.     into dotcode.c that contains the code fragment form lines 482
  359.     to 495 and returns a function pointer?
  360.  
  361. ----------------------------------------------------------------------
  362. TASK:    Partial string matching
  363. STATUS:    Open
  364. FROM:    <R@stat.auckland.ac.nz>
  365.     Is there an existing partial string match function which could
  366.     be used in place of pstrmatch in subset.c???
  367.     If not can pstrmatch take on the functions of all partial match
  368.     functions?
  369.  
  370. ----------------------------------------------------------------------
  371.