我想知道如何为另一个栅格(cat_r)的每个类别的栅格(val_r)的像素值求和。换句话说,在处理栅格对象时是否存在“extract”功能的替代?...
你可以使用 zonal 方法:
zonal
library(raster)cat_r <- raster(ncol=3,nrow=3, xmn=-10, xmx=10, ymn=-10, ymx=10, vals=c(1,2,1,3,4,3,4,4,4 ))val_r <- setValues(cat_r, c(1,0,1,5,2,5,2,2,2))zonal(val_r, cat_r, “sum”)zone sum[1,] 1 2[2,] 2 0[3,] 3 10[4,] 4 8</code>
library(raster)cat_r <- raster(ncol=3,nrow=3, xmn=-10, xmx=10, ymn=-10, ymx=10, vals=c(1,2,1,3,4,3,4,4,4 ))val_r <- setValues(cat_r, c(1,0,1,5,2,5,2,2,2))
zonal(val_r, cat_r, “sum”)
zone sum[1,] 1 2[2,] 2 0[3,] 3 10[4,] 4 8</code>
</code>
这相当于 s <- stack(cat_r, val_r)v <- values(s)tapply(v[,2], v[,1], sum)1 2 3 42 0 10 8</code>
这相当于
s <- stack(cat_r, val_r)v <- values(s)tapply(v[,2], v[,1], sum)1 2 3 42 0 10 8</code>
s <- stack(cat_r, val_r)v <- values(s)tapply(v[,2], v[,1], sum)
1 2 3 42 0 10 8</code>