[Rd] Bug in xy.coords() or documentation error?
Duncan Murdoch
murdoch at stats.uwo.ca
Sat Jan 21 20:07:20 CET 2006
On 1/21/2006 1:21 PM, Gavin Simpson wrote:
> On Sat, 2006-01-21 at 13:12 -0500, Gabor Grothendieck wrote:
>> This was discussed just recently. This is a design
>> error but the maintainers claim there are no cases of
>> interest where it matters.
>
> Thanks Gabor,
>
> I must have missed that discussion whilst I was on vacation. If what you
> say was the outcome of that discussion, it still means that the
> documentation for xy.coords is in error, as you may *not* provide a
> single argument 'x'.
You need to read the whole page. You provide a single argument x by
setting y to NULL, not by leaving it missing (as the docs said in
earlier versions).
If you want to submit a patch to the docs, I'll take a look, but I don't
like the one below. It has basically the same flaw as the current docs:
you're providing two objects, not a single object. Probably the
clearest thing to do is just to say "see below" after the current
wording, to point out that there are funny conventions here.
> If the intention is to keep the current behaviour - which is fine - then
> the documentation should be changed, perhaps along the lines of:
>
> x, y: the x and y coordinates of a set of points. Alternatively, a
> single object 'x' can be provided if 'y = NULL' is also
> supplied.
>
> 'object' might not be correct here - is a formula an 'object'?
Sure, why not?
Duncan Murdoch
>
> Cheers,
>
> Gav
>
>> On 1/21/06, Gavin Simpson <gavin.simpson at ucl.ac.uk> wrote:
>>> Hi,
>>>
>>> I noticed the following problem with xy.coords() in R 2.2.1-patched
>>> (version info at the foot of this email) and R 2.3.0 unstable
>>> (subversion no: r37123):
>>>
>>>> xy.coords(x = matrix(1:20, ncol = 2))
>>> Error in xy.coords(x = matrix(1:20, ncol = 2)) :
>>> argument "y" is missing, with no default
>>>> xy.coords(x = matrix(1:20, ncol = 2), y = NULL)
>>> $x
>>> [1] 1 2 3 4 5 6 7 8 9 10
>>>
>>> $y
>>> [1] 11 12 13 14 15 16 17 18 19 20
>>>
>>> $xlab
>>> [1] "[,1]"
>>>
>>> $ylab
>>> [1] "[,2]"
>>>
>>> And:
>>>
>>>> xy.coords(x = data.frame(x = 1:10, y = 1:10))
>>> Error in xy.coords(x = data.frame(x = 1:10, y = 1:10)) :
>>> argument "y" is missing, with no default
>>>> xy.coords(x = data.frame(x = 1:10, y = 1:10), y = NULL)
>>> $x
>>> [1] 1 2 3 4 5 6 7 8 9 10
>>>
>>> $y
>>> [1] 1 2 3 4 5 6 7 8 9 10
>>>
>>> $xlab
>>> [1] "x"
>>>
>>> $ylab
>>> [1] "y"
>>>
>>> ... for example.
>>>
>>> ?xy.coords states:
>>>
>>> x, y: the x and y coordinates of a set of points. Alternatively, a
>>> single argument 'x' can be provided.
>>>
>>> Given that, I would have thought the above examples would have worked
>>> without explicitly passing y = NULL to xy.coords(). However, ?xy,coords
>>> later states:
>>>
>>> If 'y' is 'NULL' and 'x' is a
>>>
>>> and the examples all illustrate the use of NULL passed as y.
>>>
>>> Is this a documentation error and a single argument x is not allowed, or
>>> is this a bug in the code? Either way, ?xy.coords contradicts itself as
>>> one would expect to be able to pass only x given the statement above.
>>>
>>> If this is a bug in the code, a potential workaround appears to be to
>>> change the first line of xy.coords from:
>>>
>>> if (is.null(y)) {
>>>
>>> to
>>>
>>> if (missing(y) || is.null(y)) {
>>>
>>> but I haven't tested this on anything other than my two examples.
>>>
>>> I will file a bug report if my observation is correct - but given all
>>> the erroneous bug reports lately, I thought I'd try my luck here where
>>> an error on my part would not cause the maintainers of the bug tracker
>>> any extra work.
>>>
>>>> version
>>> _
>>> platform i686-pc-linux-gnu
>>> arch i686
>>> os linux-gnu
>>> system i686, linux-gnu
>>> status Patched
>>> major 2
>>> minor 2.1
>>> year 2006
>>> month 01
>>> day 18
>>> svn rev 37123
>>> language R
>>>> sessionInfo()
>>> R version 2.2.1, 2006-01-18, i686-pc-linux-gnu
>>>
>>> attached base packages:
>>> [1] "methods" "stats" "graphics" "grDevices"
>>> [5] "utils" "datasets" "base"
>>>
>>> All the best,
>>>
>>> Gav
>>>
>>> --
>>> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>>> Gavin Simpson [T] +44 (0)20 7679 5522
>>> ENSIS Research Fellow [F] +44 (0)20 7679 7565
>>> ENSIS Ltd. & ECRC [E] gavin.simpsonATNOSPAMucl.ac.uk
>>> UCL Department of Geography [W] http://www.ucl.ac.uk/~ucfagls/cv/
>>> 26 Bedford Way [W] http://www.ucl.ac.uk/~ucfagls/
>>> London. WC1H 0AP.
>>> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
More information about the R-devel
mailing list