我有一堆尺寸为 20x11x68 的堆栈,对应于一堆尺寸为 20x11 的 68 张图像。我想计算图像的平均值(即 20x11 维度上的平均值)。我尝试使用 Mean() 函数,但最终得到了每个像素 68 个日期的平均值(因此是一个 20x11 矩阵)。 我也尝试了那些不起作用的方法:
for (i in 1:nlayers(stack_images)) {
layer <- stack_images[[i]]
moyennes_par_image[i] <- mean(layer[], na.rm = TRUE)
}
custom_mean <- function(x) mean(x, na.rm = TRUE)
apply(stack_images, MARGIN = c(1, 2), FUN = custom_mean)
unlist(lapply(1:nlayers(stack_images), function(i) {
custom_mean(extract(stack_images[[i]], stack_images[[I]]))
有人知道如何在 R 中做到这一点吗?
apply(., MARGIN = c(1,2), FUN = .)
会将函数应用于数组的前两个维度,因此这不是您想要的结果。相反,您应该在另一个维度上应用函数 mean()
:
apply(as.array(stack_images), MARGIN = 3, FUN = mean, na.rm = TRUE)