下面这个简单的命令非常有效:
pts.cnt1.1deg <- rasterToPoints(boxCnt.1deg, fun=function(r){r>=1})
但是,我需要为许多值(1:100)执行此操作。例如,我尝试了这个选项风箱,它不会这样工作。
for(i in 1:100){
pts.cnt[i].1deg <- rasterToPoints(boxCnt.1deg, fun=function(r){r>=[i]})
}
以上面的例子为例,如何在该命令上正确包含循环?
答案 0 :(得分:0)
你可以像这样做一个循环
pts.cnt.1deg <- list()
for(i in 1:100){
pts.cnt.1deg[[i]] <- rasterToPoints(boxCnt.1deg, fun=function(r){r>=[i]})
}
但在我看来,在内存允许的情况下,做起来会更简单
x <- rasterToPoints(boxCnt.1deg)
然后根据需要设置x
答案 1 :(得分:0)
不要使用循环,它的速度很慢,而且实际上只是解决方法,以后必须撤消。 将栅格转换为点,然后按因子拆分spdf。假设您希望将度数四舍五入到大数位左右。
x <- rasterToPoints(boxCnt.1deg)
x.list<-split(x,round(x$value,-1))
答案 2 :(得分:-1)
我同意MrFlick有更好的方法来做到这一点。您可以使用assign(x, value)
函数
for (i in 1:100) {
assign(paste0("pts.cnt", i, ".1deg"), rasterToPoints(boxCnt.1deg, fun = function(r) { r >= 1 }))
}