我有我認爲會是一個簡單的問題,但我一直無法找到合適的答案。我有一個多維數組v[x,y,z]
,我想用一個分組變量(組)將一個函數應用到維度上的數組。下面是一個例子(在R):將函數應用到具有分組變量的多維數組中
v<-1:81
dim(v)<-c(3,3,9)
group<-c('a','a','a','b','b','b','c','c','c')
鑑於分組變量有3個級別(一個,b和Ç),結果(出)我正在尋找是一個尺寸爲3x3x3的數組。我可以得到出使用以下代碼爲上面的例子:
out1<-apply(v[,,c(1:3)],c(1,2),sum)
out2<-apply(v[,,c(4:6)],c(1,2),sum)
out3<-apply(v[,,c(7:9)],c(1,2),sum)
library(abind)
out<-abind(out1, out2, out3, along=3)
我的問題是如果在獲取上述的結果,這可以應用到大尺寸的陣列和長分組矢量的一個通用方法。
在@krlmlr的回答下給出您的評論,如果您能更準確地描述您正在使用的數據,那將會更好。開發一個答案是令人沮喪的,實際上,你所擁有的數據與你所描述的非常不同,所以*不起作用*! – 2013-04-21 21:55:33
由於您正在處理遙感數據,因此我需要查看爲這種數據優化的''raster'包,'stack'和'calc'函數。 – 2013-04-21 21:57:17