On Tue, Nov 11, 2008 at 1:58 PM, Wacek Kusnierczyk
<[EMAIL PROTECTED]> wrote:
> hadley wickham wrote:
>> On Tue, Nov 11, 2008 at 1:42 PM, Wacek Kusnierczyk
>> <[EMAIL PROTECTED]> wrote:
>>
>>> hadley wickham wrote:
>>>
>>>>> |  is.matrix| returns |TRUE| if |x| is a matrix and has a |dim <dim.html>|
>>>>> attribute of length 2) and |FALSE| otherwise
>>>>>
>>>>>
>>>> That's confusing!  In what situations is x a matrix but does not have
>>>> a dim attribute?
>>>>
>>>>
>>>>
>>> x = matrix(1,1,1)
>>> dim(x) = c(1,1,1)
>>>
>>
>> I think you meant
>> dim(x) <- c(3, 1)
>>
>> You created a 1 x 1 x 1 array.
>>
>
> i know, that's precisely what i wanted.  this is a simple 3d structure,
> yet is(x) reveals it is a matrix.  that was the point.

I think the message here is not to use is().  is() is designed for use
with S4 objects, and it doesn't always give what you'd expect for
primitive objects.  This isn't normally a problem because for those
objects you use is.matrix(), is.array(), is.vector() etc.  Sure, this
isn't a particularly wonderful aspect of the language, but there are
far more interesting and important things for people to spend their
time on, and fixing these behaviours now could potentially break large
amounts of existing code, with little benefit.

Hadley


-- 
http://had.co.nz/

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to