which.max函数I有两个光栅与数据如下:修改中的R
library("raster")
mdata <- raster(matrix(c(0,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE))
ndata <- raster(matrix(c(0,1,2, 11,14,13), nrow = 2, ncol = 3, byrow = TRUE))
欲堆叠起来,并估计与该标准的最大位置,如果这两个光栅具有0值时,我应该能够写入0.这意味着在这种情况下输出栅格/矩阵应该有0,1或2。
我尝试了下面的代码,但它并没有完全按照我想要的方式执行。
odata <- stack(mdata, ndata)
e <- which.max(odata)
我应该如何引入检查两个矩阵的值是否为0的标准,如果存在,则分配0?
我真的很感谢你对此的反馈。谢谢!
PLease定义“最大位置”,并提供输出样本输出矩阵(零点,一点和二点)的示例。否则,只需设置'summat <-sum(mdata,ndata)'并检查值为零的值就足够了。 –
用给定的矩阵mdata和ndata以上,which.max(odata)会给我一个矩阵(c(1,1,1,1,2,1))。 2在这种情况下指示第二光栅(即,ndata)对于[2,2]位置具有较高的值。如果两个矩阵具有相同的值,则将输出矩阵分配为1,即,第一矩阵的位置。我想要得到矩阵值为c(0,1,1,1,2,1)的结果。这基本上类似于我已经通过which.max函数获得的结果,除了我想为两个矩阵分配具有0的单元格以及0不与1。 –
我试图在逐个单元格基础上确定位置在一组栅格中具有最大值的栅格。如果我只有两个栅格,你的解决方案似乎工作。但是,我有27个栅格进行比较,并创建一个光栅,其中栅格的位置在27个栅格中具有最大值。所以,我试图堆叠栅格图层,并使用which.max函数来部分满足我的目标。我只是无法弄清楚如何满足条件,如果所有栅格在相同位置都有0,我需要分配0。 –