[R] Dimension of a vector

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Dec 5 07:20:32 CET 2007


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



More information about the R-help mailing list