Есть ли способ указать веса в функции relrisk.ppp
в spatstat
(версия 1.63-3)?
Функция relrisk.ppp
вызывает функцию density.ppp
, которая позволяет пользователям указывать их собственные веса.
Например, давайте построим на предоставленных spatstat.data::urkiola
данных, где вместо отдельных деревьев местоположениями являются древовидные насаждения, а у нас есть вторая цифра c, обозначающая частоту появления деревьев в каждой точке-местоположении:
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)
Я подозреваю, что есть способ указать веса с умом, но он все же ускользает меня. Любые предложения или рекомендации будут полезны, спасибо!