与三个矩阵:
library(raster)
r1 <- r2 <- r3 <- raster(ncol=10, nrow=10)
r1[] <- runif(ncell(r1)); r1=as.matrix(r1)
r2[] <-c(0,5); r2=as.matrix(r2)
r3[] <-c(1,2,3,4,5); r3=as.matrix(r3)
对于r3中的每个值,我想计算r1中所有相应像素的平均值,但是如果它们在r2中为0或5,则将它们分开。以r3中的第一个值= 1为例,r1中的对应值是2、1、6、8、9,它们在r2中的对应关系如下:
2,1,9 >>> 0
6,8 >>> 5
因此,对于r3中的值为1的最终结果
0 >>> (2+1+9)/3= 4
5 >>> (6+8)/2 = 7
资源
r3/r2 0 5
1 4 7
2 ? ?
3 ? ?
4 ? ?
5 ? ?
您给出的示例数字与您的数据不匹配,因为r1的值都在0到1之间。
library(raster)
r1 <- r2 <- r3 <- raster(ncol=10, nrow=10)
set.seed(1)
r1[] <- runif(ncell(r1))
r2[] <-c(0,5)
r3[] <-c(1,2,3,4,5)
你可以做
r10 <- mask(r1, r2, maskvalue=5)
r15 <- mask(r1, r2, maskvalue=0)
zonal(r10, r3, mean)
zonal(r15, r3, mean)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句