[R] dim vs length for vectors

miguel manese jjonphl at gmail.com
Fri Jan 21 06:53:18 CET 2005


I think the more intuitive way to think of it is that dim works only
for matrices (an array being a 1 column matrix). and vectors are not
matrices.

> x <- 1:5
> class(x)  # numeric
>  dim(x) <- 5
> class(x) #  array
> dim(x) <- c(5,1)
> class(x) # matrix
> dim(x) <- c(1,5)
> class(x) # matrix


On Fri, 21 Jan 2005 05:35:11 +0000 (UTC), Gabor Grothendieck
<ggrothendieck at myway.com> wrote:
> Olivia Lau <olau <at> fas.harvard.edu > writes:
> 
> :
> : Hi all,
> :
> : I'm not sure if this is a feature or a bug (and I did read the
> : FAQ and the posting guide, but am still not sure).  Some of my
> : students have been complaining and I thought I just might ask:
> : Let K be a vector of length k.  If one types dim(K), you get
> : NULL rather than [1] k.  Is this logical?
> :
> : Here's the way I explain it (and maybe someone can provide a
> : more accurate explanation of what's going on):  R has several
> : types of scalar (atomic) values, the most common of which are
> : numeric, integer, logical, and character values.  Arrays are
> : data structures which hold only one type of atomic value.
> : Arrays can be one-dimensional (vectors), two-dimensional
> : (matrices), or n-dimensional.
> :
> : (We generally use arrays of n-1 dimensions to populate
> : n-dimensional arrays -- thus, we generally use vectors to
> : populate matrices, and matrices to populate 3-dimensional
> : arrays, but could use any array of dimension < n-1 to populate
> : an n-dimensional array.)
> :
> : It logically follows that when one does dim() on a vector, one
> : should *not* get NULL, but should get the length of the vector
> : (which one *could* obtain by doing length(), but I think this is
> : less logical).  I think that R should save length() for lists
> : that have objects of different dimension and type.
> :
> 
> In R, vectors are not arrays:
> 
> R> v <- 1:4
> R> dim(v)
> NULL
> R> is.array(v)
> [1] FALSE
> 
> R> a <- array(1:4)
> R> dim(a)
> [1] 4
> R> is.array(a)
> [1] TRUE
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help 
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html 
>




More information about the R-help mailing list