是否有办法在 relrisk.ppp
作用于 spatstat
(1.63-3版)?
さ氖焙? relrisk.ppp
函数调用 density.ppp
函数,它确实允许用户指定自己的权重。
例如,让我们在提供的 spatstat.data::urkiola
数据,其中的位置不是单独的树木,而是树群,我们有第二个数字标记来表示每个点位上树木的频率。
urkiola_new <- spatstat.data::urkiola
urkiola_new$marks <- data.frame("type" = urkiola_new$marks, "freq" = rpois(urkiola_new$n, 3))
f1 <- spatstat::relrisk(urkiola_new, weights = urkiola_new$marks$freq)
当使用 urkiola_new
应召 relrisk
, urkiola_new
被 stopifnot(is.multitype(X))
在 relrisk.ppp
. 接下来,我试着分别将权重指定为一个向量,同时使用原始的 urkiola
数据。
f2 <- spatstat::relrisk(urkiola, weights = urkiola_new$marks$freq)
却被一个警告的人抓住了。pixellate.ppp
内部功能 density.ppp
函数。
Error in pixellate.ppp(x, ..., padzero = TRUE) : length(weights) == npoints(x) || length(weights) == 1 is not TRUE
当我把权重转换为列表时,也会出现同样的错误。
urkiola_weights <- split(urkiola_new$marks$freq, urkiola_new$marks$type)
f3 <- spatstat::relrisk(urkiola, weights = urkiola_weights)
我怀疑有一种方法可以巧妙地指定权重,但我还没有找到。任何建议或指导都会很有帮助,谢谢!
函数 relrisk.ppp
目前还没有被设计为处理重量。的帮助条目。relrisk.ppp
没有提到权重。
上面的例子不能用,因为 relrisk.ppp
适用 density.ppp
分别对每一种类型的点的子模式,和额外的参数 weights
是这些子模式的错误长度。
我将把这个问题作为一个功能请求,把这个功能添加到 relrisk.ppp
. 应该很快就能完成。
更新注:这一点现已在开发版中实施。spatstat 1.64-0.018
可在 spatstat github仓库