Skip to content
Back to formatted view

Raw Message

Message-ID: <Pine.LNX.4.64.0712050616050.17931@gannet.stats.ox.ac.uk>
Date: 2007-12-05T06:20:32Z
From: Brian Ripley
Subject: Dimension of a vector
In-Reply-To: <4433.203.173.149.245.1196814932.squirrel@webmail.scms.waikato.ac.nz>

On Wed, 5 Dec 2007, maj at stats.waikato.ac.nz wrote:

> Consider the following:
>> A <- 1:10
>> A
> [1]  1  2  3  4  5  6  7  8  9 10
>> dim(A)
> NULL
>> dim(A) <- c(2,5)
>> A
>     [,1] [,2] [,3] [,4] [,5]
> [1,]    1    3    5    7    9
> [2,]    2    4    6    8   10
>> dim(A)
> [1] 2 5
>> dim(A) <- 10
>> A
> [1]  1  2  3  4  5  6  7  8  9 10
>> dim(A)
> [1] 10
>
> Would it not make sense to have dim(A) = length(A) for all vectors?

No.  A one-dimensional array and a vector are not the same thing.
There are subtle differences, such as what names() means (see ?names).

That a 1D array and a vector _print_ in the same way does occasionally 
lead to confusion, but then you also cannot tell from your printout that A 
has type "integer" and not "double".

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595