我正在尝试将 R 中的 5 个堆叠栅格同时离散化为四分位数。我已经编写了以下循环来执行此操作,但它似乎无法正常工作。在代码中,“stack.disc”是堆栈,“quartiles”是一个 5 列数据框,其中 5 个栅格作为列,它们的四分位值列在行中。
for(i in 1:ncol(quartiles)) {
for(j in 1:length(stack.disc@layers[[i]])) {
if(isTRUE(stack.disc@layers[[i]]@data@values[j] >= quartiles[1,i] &
stack.disc@layers[[i]]@data@values[j] < quartiles[2,i])) {
stack.disc@layers[[i]]@data@values[j] = 1
}
if(isTRUE(stack.disc@layers[[i]]@data@values[j] >= quartiles[2,i] &
stack.disc@layers[[i]]@data@values[j] < quartiles[3,i])) {
stack.disc@layers[[i]]@data@values[j] = 2
}
if(isTRUE(stack.disc@layers[[i]]@data@values[j] >= quartiles[3,i] &
stack.disc@layers[[i]]@data@values[j] < quartiles[4,i])) {
stack.disc@layers[[i]]@data@values[j] = 3
}
if(isTRUE(stack.disc@layers[[i]]@data@values[j] >= quartiles[4,i] &
stack.disc@layers[[i]]@data@values[j] <= quartiles[5,i])) {
stack.disc@layers[[i]]@data@values[j] = 4
}
}
}
代码运行但仅在堆栈中的前 3 个栅格上运行。任何想法为什么它不适用于最后 2 个?
谢谢!