我试图同时将R中的5个堆叠栅格离散化为四分位数。我已经编写了以下循环来执行此操作,但是它似乎无法正常工作。在代码中,“ stack.disc”是堆栈,“四分位数”是一个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个栅格上运行。有什么想法为什么它对后两个无效?
谢谢!