Arrays 按数组r中的24个值求平均值

Arrays 按数组r中的24个值求平均值,arrays,r,matrix,apply,netcdf,Arrays,R,Matrix,Apply,Netcdf,我在一个名为tmp_array[1:143,1:134,1:8760]的大型3维数组中有年度数据,前两维与坐标相关,第三维与每小时温度相关。我希望最终得到平均日温度(24小时以上的平均温度)和一个阵列tmp_阵列[1:143,1:134,1:365]。这是我制定的代码,但我似乎与账户相去甚远 temp<-apply(tmp_array, MARGIN=c(1, 2), mean) temp据我所见,你可以得到一年中每个坐标8760小时的平均温度,一个二维数组[143134]。 您希望一年

我在一个名为tmp_array[1:143,1:134,1:8760]的大型3维数组中有年度数据,前两维与坐标相关,第三维与每小时温度相关。我希望最终得到平均日温度(24小时以上的平均温度)和一个阵列tmp_阵列[1:143,1:134,1:365]。这是我制定的代码,但我似乎与账户相去甚远

temp<-apply(tmp_array, MARGIN=c(1, 2), mean)

temp据我所见,你可以得到一年中每个坐标8760小时的平均温度,一个二维数组[143134]。
您希望一年中的每一天都获得相同的结果吗?
在这种情况下,您可以首先创建一个空数组来存储结果

new.array <- array(dim=c(143,134,24))

new.array我想你可以通过重塑你的数组来做到这一点:
ar=array(…,dim=c(14314318760));ar2=阵列(ar,dim=c(14314324365));ar2=aperm(ar2,c(1:2,4,3));行表示(ar2,dims=3)
或通过重塑然后聚合:
重塑2::熔化(ar)
。但如果您添加了一些数据进行测试,最好是一个小的示例数组,并具有预期的结果,这将是一件好事。我认为您的建议正在接近我想要的,但我认为仍有一些事情需要改变。通过执行代码,我最终得到了:new.array[1:143,1:134],而不是new.array[1:143,1:134,365]。我想换一个新的。arrayI会很快回来给你。这一年不是闰年,通过这次修改,我得到了我想要的,但增加了一层(366而不是365)。第一层是空的,我刚把它删除了!是的,这是第一个空数组。
library(abind)
new.array <- array(dim = c(143, 134))
for (i in seq(1, 8760, 24)) {
new.array <- abind::abind(new.array,  apply(my.array[1:143, 1:134, i:(i+23)], MARGIN=c(1, 2), mean), along = 3)
}
dim(new.array)