[R] Slicing an array

Charles C. Berry cberry at tajo.ucsd.edu
Fri Jun 12 17:16:54 CEST 2009



Jim,

Is

 	do.call( '[', list( array4d,TRUE,TRUE,TRUE,1 ) )

what you want?

HTH,

Chuck


On Fri, 12 Jun 2009, Jim Lemon wrote:

> Hi all,
> I've been trying to work out how to slice an array of arbitrary dimension. I 
> found a message showing how to stick two arrays together, but so far have 
> been unable to transform that into what I need. Assume that I have a four 
> dimensional array for example:
>
> array4d
> , , 1, 1
>
>    [,1] [,2]
> [1,]    3    6
> [2,]    1    1
>
> , , 2, 1
>
>    [,1] [,2]
> [1,]    4    7
> [2,]    8    7
>
> , , 1, 2
>
>    [,1] [,2]
> [1,]    7    8
> [2,]    8    7
>
> , , 2, 2
>
>    [,1] [,2]
> [1,]    7    5
> [2,]    9    9
>
> I want to slice the array from the rightmost dimension, getting in sequence:
>
> array4d[,,,1]
> array4d[,,,2]
>
> then slicing those 3D arrays, and so on. I'm pretty sure that this will 
> involve a:
>
> do.call('[',...)
>
> construction, but I haven't been able to work out how to specify the list of 
> arguments, in particular the index vector, to slice up the last dimension. I 
> have tried constructing index vectors with NULLs which of course doesn't work 
> because they just disappear. Any suggestions?
>
> Jim
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901




More information about the R-help mailing list