【发布时间】:2016-11-10 07:59:44
【问题描述】:
是否可以在 R 中对 3d 数组执行每日平均?
例如:
我有两天在纬度/经度网格上的 3d 数据点数组。
lat <- 50:51
lon <- 2:3
time <- as.POSIXct(c('2009-01-01 12:00','2009-01-01 15:00','2009-01-01 17:00','2009-01-02 12:00',
'2009-01-02 16:00'))
j <- array(c(1:6, 11:16, 21:26), c(2,2,5))
dim(j)
[1] 2 2 5
其中第一个维度指的是纬度,第二个维度是指经度,第三个维度是指时间(即每个纬度/经度的数据通过时间)。
如何计算这些值的每日平均值并返回每日平均的 3d 数组?
返回数组的维度应该是
暗淡(j) [1] 2 2 2
时间维度对应的位置:
new_time <- as.POSIXct(c('2009-01-01','2009-01-02))
这可能吗?
在不考虑不同日期的情况下,我可以执行 3d 平均:
apply(j, c(1,2), mean)
但我不确定如何在选定日期内执行平均。
任何帮助将不胜感激。
【问题讨论】:
-
重塑您的数据并使用通常的拆分-应用-组合功能。
-
我不想重塑数据,因为实际上数据在 0.25 度分辨率的全球网格上,因此会变得非常大。
-
好吧,那么您要么需要使用低效的循环,要么使用 Rcpp 编写一些东西。如果可以重塑,我会先尝试。
标签: r