Skip to content

Loss of dimensions in subsetting arrays

5 messages · Markku Karhunen, Marc Schwartz, Berend Hasselman +1 more

#
Hi all,

I've been wondering for a long time why R drops the dimensions of an  
array/matrix when you try to take a subset of one column. I mean this:

dim(A)
[1] 2 5 2
B=A[1,,]
dim(B)
5 2 # so now dim(B)[3] doesn't work
C=B[2,]
dim(C)
NULL # so now nrow(C) doesn't work

Typically, you can get rid of this by writing as.matrix, as.array(...)  
but that generates extra lines of code. This is really annoying. Does  
anybody know how to turn this behaviour off?

best,
Markku Karhunen
Uni. Helsinki
#
On Oct 12, 2012, at 4:52 AM, Markku Karhunen <markku.karhunen at helsinki.fi> wrote:

            
You can save yourself a lot of time if you visit the R FAQ as your first action item when such questions come up. In this case:

  http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-my-matrices-lose-dimensions_003f

Regards,

Marc Schwartz
#
On 12-10-2012, at 11:52, "Markku Karhunen" <markku.karhunen at helsinki.fi> wrote:

            
Use 

B <- A[1,,,drop=FALSE]

Also read the help for [:

?"["

Berend
#
On Oct 12, 2012, at 2:52 AM, Markku Karhunen wrote:

            
Read the help page for:

 ?"["  # especially regarding the drop parameter.

--

David Winsemius, MD
Alameda, CA, USA
#
Ok, apologies.