It does not achieve design consistency. One would have to specify NULL but that should not really be necessary.
On 12/31/05, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 12/31/2005 12:21 PM, Gabor Grothendieck wrote: > > I think the point is that (1) it does not work as documented and (2) in > > most functions one can omit unnecessary args without having > > to specify NULL so its behvaior seems inconsistent from a design > > viewpoint. By allowing either missing or NULL it will work as documented, > > and probably intended, yet continue to be backward compatible with > > existing usages. > > But a simpler change is to change the documentation, and it achieves all > of those objectives. > > Duncan Murdoch > > > > On 12/31/05, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > > > >>On 12/31/2005 8:57 AM, Gabor Grothendieck wrote: > >> > >>>It could be changed to missing(y) || is.null(y) and the docs amended. > >>>That way existing code will continue to work and code that otherwise > >>>gives an error currently, but should have worked, will now work too. > >> > >>Can you give an example where you would want to use xy.coords(y ~ x)? > >>Normally xy.coords() is used in other functions, and they can default y > >>to NULL (see plot.default, for example). > >> > >>Duncan Murdoch > >> > >>>On 12/31/05, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>>On 12/30/2005 10:10 PM, Gabor Grothendieck wrote: > >>>> > >>>> > >>>>>In ?xy.coords it says: > >>>>> > >>>>> If 'y' is missing and 'x' is a > >>>>> > >>>>> formula: of the form 'yvar ~ xvar'. 'xvar' and 'yvar' are used as > >>>>> x and y variables. > >>>>> > >>>>> list: containing components 'x' and 'y', these are used to define > >>>>> plotting coordinates. > >>>>> > >>>>> time series: the x values are taken to be 'time(x)' and the y > >>>>> values to be the time series. > >>>>> > >>>>> matrix with two columns: the first is assumed to contain the x > >>>>> values and the second the y values. > >>>>> > >>>>>however, in fact, if y is missing an error is given. e.g. > >>>>> > >>>>>x <- 1:3 > >>>>>y <- 4:6 > >>>>>xy.coords(y ~ x) # error > >>>>>xy.coords(cbind(x, y)) # error > >>>>>xy.coords(ts(y)) # error > >>>>> > >>>>>Looking at the code, is.null(y) in the first line of the > >>>>>body should be missing(y) . > >>>> > >>>>It would be better to change the docs to say "if 'y' is NULL ...". The > >>>>code has been the way it is for years and years, and is widely used. > >>>> > >>>>Changing the test to missing(y) would mean all existing uses that put a > >>>>NULL there would need to be changed. > >>>> > >>>>Adding a default value of NULL to y would have less impact, but I'd > >>>>still be worried about it having long-range bad effects. > >>>> > >>>>Duncan Murdoch > >>>> > >> > >> > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel