Re: [Rd] [Fwd: buglet (?) in de.restore()]

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Mon, 10 Sep 2007 10:27:39 -0400

On 9/10/2007 8:47 AM, Ben Bolker wrote:
> I'm resending this after a decent interval of 20 days -- any
> opinions? Should I file it as a bug report? Is it my mistake?

I think a bug report is in order.

>
> cheers
> Ben Bolker
>
>
> -------- Original Message --------
> Subject: buglet (?) in de.restore()
> Date: Tue, 21 Aug 2007 13:29:33 -0400
> From: Ben Bolker <bolker_at_zoo.ufl.edu>
> To: r-devel_at_r-project.org
>
>
>
> If one calls data.entry() with a matrix:
>
> A = matrix(0,2,2)
> data.entry(A)
>
> everything works fine except that it triggers a warning:
>
> Warning message:
> the condition has length > 1 and only the first element will be used in:
> if (dim(x) == dim(args[[i]])) rn <- dimnames(args[[i]])[[1]] else rn
> <- NULL
>
> This is triggered by the following lines in de.restore() [in
> src/library/utils/R/de.R]:

>>   if( dim(x) == dim(args[[i]]) )
>>                 rn <- dimnames(args[[i]])[[1]]
>>             else rn <- NULL

> It would seem to make sense to replace the condition with
>
> if (nrow(x) == nrow(args[[i]]))
>
> (de.restore() is only called if an element of the list passed to
> data.entry
> has more than one column)
>
> On a side note, I'm curious why
>
>> > A = matrix(0,2,2)
>> > is.vector(A)
>> [1] FALSE
>> > is(A,"vector")
>> [1] TRUE

The glib answer for the first result is that it's because it's documented that way. I guess it's so that you can distinguish simple vectors from matrices or other more complex objects.

As to the second, you're testing whether A inherits from the class "vector", i.e. indexing works on it. Most things in R inherit from class vector, so that comes out TRUE. (Things that don't: NULL, environments, some other special stuff.)

Duncan Murdoch



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Tue 11 Sep 2007 - 02:35:22 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 11 Sep 2007 - 12:40:35 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.