[R] how to reshape an array avoiding for loops

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Aug 16 23:18:27 CEST 2005


Wladimir Eremeev <wl at eimb.ru> writes:

> Dear r-help,
> 
>   I have an array a1 with dimensions [1:660,1:65,1:25]
>   I would like the first dimension to be the last one.
>   That is I want and array [1:65,1:25,1:660]
> 
>   The only way to do this, I know, is
>   
>   tmp.a<-array(dim=dim(a1)[c(2,3,1)])
>   for(i in 1:dim(a1)[1]) tmp.a[,,i]<-a1[i,,]
>   a1<-tmp.a
>   rm(tmp.a)
> 
>   
>   Is it possible to avoid 'for' loop here?

aperm() is your friend.

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907




More information about the R-help mailing list