problem with sub in graphs

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
22 Jun 1998 12:33:52 +0200


Martin Maechler <maechler@stat.math.ethz.ch> writes:

>     PD> The purpose of '...' is that a function does not  need to know
>     PD> about certain parameters that are being handled by lower level
>     PD> routines. It can just pass them along.
> 
> Yes,  but......
> 
> The problem here is really about catching user typos.
> S-plus has been  quite lazy here which has driven people into despair, 
> more than once in my epxerience:
> 
> Consider the person (especially non-pro statistician) who does
> 
> 	summary(glm(y~x,familiy=poisson(link="identity")))
> 

Point taken, but I still have reservations, mainly in the
division-of-labour department. 

The obvious counterargument is that in Splus, glm internally calls its
method= argument (glm.fitter) with the ..., and there is no way for
glm to know that "familiy" is not a valid argument for a user-supplied
method (-short of some kind of AI proximity testing, I suppose).
Conversely, *if* argument checking was performed in glm, and a user
wanted to use his own supersmart fitting method with some special
arguments, he'd have to modify glm as well. Now take *two* packages,
each modifying glm in their own way...

One way out - but this requires considerable changes - could be to
implement a convention that routines using ... returns a component
called $unmatched. The caller could then take the intersection of
those and if it is non-empty, complain. (If a routine does not
return $unmatched one must assume that everything *is* matched.)

-- 
   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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._