controlledSubsetting {arrayMagic} | R Documentation |
Finer control on the drop argument as in []
controlledSubsetting(a, ranges, drop)
a |
array; required; default: missing. |
ranges |
list of vectors; list length must match dimensionality of a; each element of the numeric vector specifies the subset of the corresponding dimension of a; if is.na(element) the whole corresponding dimension is kept; required; default: missing. |
drop |
optional; specifies each dimension of array a which will be dropped, the corresponding subset must specify exact one element; if missing all such subsets are dropped; default: missing. |
subsetted array
Andreas Buness <a.buness@dkfz.de>
a <- array(1:400, dim=c(2,3,5,6)) r <- controlledSubsetting(a=a, ranges=list(1,2,3,2), drop=2) stopifnot(length(dim(r)) == 3 ) stopifnot(r == a[1,2,3,2]) r <- controlledSubsetting(a=a, ranges=list(2,1:2,2,2:3), drop=3) stopifnot( all(r[1,,,drop=TRUE] == a[2,1:2,2,2:3]) ) r <- controlledSubsetting(a=a, ranges=list(1:2,1:2,2,3), drop=3) stopifnot( all(r[,,1,drop=TRUE] == a[1:2,1:2,2,3]) ) r <- controlledSubsetting(a=a, ranges=list(1:2,1:2,2,3), drop=c(3,4)) stopifnot( all(r == a[1:2,1:2,2,3]) ) r <- controlledSubsetting(a=a, ranges=list(1:2,1:2,1:5,3), drop=c(4)) stopifnot( all(r == a[1:2,1:2,1:5,3]) ) r <- controlledSubsetting(a=a, ranges=list(NA,NA,1:5,3), drop=c(4)) stopifnot( all(r == a[,,1:5,3]) )