[英]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
替换为所需函数即可。
求和和计算平均值的优化版本是rowSums
和rowMeans
。
mySumArray <- rowSums(myArray, dims=3)
快速返回与上述相同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.