我想在R中使用的netCDF4文件太大了。我想写一个循环,它将读入一大块数据并对其进行总结。
我想读的变量有4个维度; ' lat',' lon','会员'而且'时间'时间是每月分辨率,成员包含来自气候模型的60个集合。
使用ncvar_get
命令我从netCDF中提取了12个时间片,留下了4维数组。
num[1:144,1:69:1:60,1:12]
我如何汇总这个以便我有年度数据。
答案 0 :(得分:0)
我假设您的第四个维度,其长度为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)
更快地返回与上面相同的结果。