繁体   English   中英

聚合数组

[英]Aggregating in arrays

我要在R中使用的netCDF4文件太大。 我想编写一个循环,将读取一部分数据并将其汇总。

我希望读取的变量有4个维度。 “ lat”,“ lon”,“ member”和“ time”。 该时间具有月度分辨率,并且该成员包含60个气候模型的合奏。

使用ncvar_get命令,我从netCDF中提取了12个时间片,剩下一个4维数组。

num[1:144,1:69:1:60,1:12]

我将如何汇总这些数据,以便获得年度数据。

我假设您的第四个维度(长度为12)是月数,并且您想对该维度进行汇总并返回维度为c(144, 69, 60)的数组。

可重现的数据(相同维度的数组,全为1)

myArray <- array(1, dim =c(144, 69, 60, 12))

这是使用apply的方法:

mySumArray <- apply(myArray, c(1,2,3), sum)

这将返回具有以下尺寸的数组:

dim(mySumArray)
[1] 144  69  60

前三个元素在哪里:

mySumArray[1:3]
[1] 12 12 12

如果需要均值或其他函数,只需将sum替换为所需函数即可。

求和和计算平均值的优化版本是rowSumsrowMeans

mySumArray <- rowSums(myArray, dims=3)

快速返回与上述相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM