我正在尝试使用 R terra 包计算 SpatRaster/SpatRaster 堆栈的行或列平均值,以便制作 Hovmoller 图,但发现自己被难住了。
我通常只使用这样的东西:
# Test matrix
A = matrix(seq(1,6,1),4,3,byrow = TRUE)
# Usually lots of NAs in the data
A[c(2,4,5)] <- NA
# Calculate the mean of each row
m = apply(A, 1, "mean", na.rm =T)
如何使用 terra 函数来计算这个值?阅读各种 app() 函数的文档,似乎并不清楚如何根据 SpatRaster 维度计算值。希望我遗漏了一些明显的东西。
您可以使用
aggregate
这个
x <- rast(A)
aggregate(x, c(1, ncol(x)), mean, na.rm=TRUE) |> values()
# lyr.1
#[1,] 2.0
#[2,] 5.5
#[3,] 2.0
#[4,] 5.5
返回与
相同的数字apply(A, 1, "mean", na.rm =T)
#[1] 2.0 5.5 2.0 5.5