我有我认为是一个简单的问题,但我找不到合适的答案.我有一个多维数组v[x,y,z],我想使用分组变量(组)沿z维度向数组应用一个函数.这是一个例子(在R中):
v<-1:81
dim(v)<-c(3,3,9)
group<-c('a','a','a','b','b','b','c','c','c')
Run Code Online (Sandbox Code Playgroud)
鉴于分组变量有3个级别(a,b和c),我正在寻找的结果(out)是一个维度为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)
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有一种获得上述结果的一般方法,可以应用于大维数组和长分组向量.
r ×1