我正在尝试使用AdehabitatHR LoCoH.k.area
优化k参数,当拓扑无法生成多边形时,它将停止运行。消息是:
rgeos_PolyCreateComment:孤立的孔,找不到包含多边形的孔 用于索引为12的孔。
我已经使用LoCoH.k成功完成了多次单次运行,但只有少数由于孤孔而无法运行。
即使前一个产生了一个孤洞,也可以保持LoCoH.k.area
在向量中指定的k个值之间循环吗?
谢谢珍妮
答案 0 :(得分:0)
您不能在LoCoH.k.area
中包装tryCatch
函数。例如。具有krange = 5:9
参数的函数抛出:
rgeos :: createPolygonsComment(oobj)中的错误: rgeos_PolyCreateComment:孤立的孔,找不到包含多边形的孔 用于索引6的孔
请参见下面的代码:
library(adehabitatHR)
data(puechabonsp)
locs <- puechabonsp$relocs
## The call below throws an error
## LoCoH.k.area(locs[, 1], krange = 5:9)
pdf()
y <- sapply(5:9, function(x) tryCatch(
expr = cbind(LoCoH.k.area(locs[, 1], krange = x), k = x),
error = function(e){},
finally = NULL))
dev.off()
do.call(rbind, y)
输出:
Brock Calou Chou Jean k
1 25.21552 38.61693 83.37389 80.97771 8
2 27.37161 39.10789 86.45349 83.44156 9