是否可以使用二維二進制數組選擇一個三維數組的子集?我想能夠做到這一點,以便我可以將值推入選區用m維數組選擇N維數組的子集?
例如,我有一個數組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
(單支架)。但是,只有當你想要跨度的維度是最後的維度時纔有效。所以,爲了讓它更有趣:
如果你想跨越的維度是第一維或第二維,你如何做到這一點 - 例如,如果dim(b)==(lat,years)?
爲什麼不簡單地使用'a [1,,]'或者像'a [1:2,1]'這樣的變體? – Andrie
@Andrie:因爲我還沒有把頭圍住它。我會試試:) – naught101
啊,好的。我與你在一起時發現很難將頭圍在矩陣上。我會給我的答案添加一個例子。 – Andrie