[R] General indexing in multidimensional arrays
    Jannis 
    bt_jannis at yahoo.de
       
    Mon Aug  1 11:38:05 CEST 2011
    
    
  
Dear R community,
I have a general question regarding indexing in multidiemensional arrays.
Imagine I have a three dimensional array and I only want to extract on 
vector along a single dimension from it:
data    <- array(rnorm(64),dim=c(4,4,4))
result  <- data[1,1,]
If I want to extract more than one of these vectors, it would now really 
help me to supply a logical matrix of the size of the first two dimensions:
indices        <- matrix(FALSE,ncol=4,nrow=4)
indices[1,3]   <- TRUE
indices[4,1]   <- TRUE
result <- data[indices,]
This, however would give me an error. I am used to this kind of indexing 
from Matlab and was wonderingt whether there exists an easy way to do 
this in R without supplying complicated index matrices of all three 
dimensions or logical vectors of the size of the whole matrix?
The only way I could imagine would be to:
result  <- data[rep(as.vector(indices),times=4)]
but this seems rather complicated and also depends on the order of the 
dimensions I want to extract.
I do not want R to copy Matlabs behaviour, I am just wondering whether I 
missed one concept of indexing in R?
Thanks a lot
Jannis
    
    
More information about the R-help
mailing list