是否可以选择具有二维二进制数组的三维数组的子集?我希望能够做到这一点,以便我可以将值推送到选择中
例如,我有一个数组 dim(a) = (lat, long, time),我想使用 dim(b) = (lat, long) 进行选择,这是一个充满 TRUE/FALSE 值的数组。我希望能够做类似的事情:
> a <- array(c(1,2,3,4,5,6,7,8),c(2,2,2))
> b <- matrix(c(0,1,0,0), c(2,2))==TRUE
> a[[b]] <- 0
> a
, , 1
[,1] [,2]
[1,] 1 3
[2,] 0 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 0 8
编辑:好的,所以这看起来像一个愚蠢的问题,因为我刚刚意识到它的工作原理与上述完全一样,如果你使用a[b] <- 0
(单括号)。但这仅在您要跨越的维度是最后的维度时才有效。所以,为了让它更有趣:
如果您要跨越的维度是第一个或第二个维度,您怎么能做到这一点 - 例如。如果暗淡(b)==(纬度,年)?