«Ошибка в as.double (y): невозможно привести тип« замыкание »к вектору типа« двойник »», когда я пытаюсь измерить попарные расстояния - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь сгенерировать процесс формирования кластера с помощью spatstat, а затем вычислить расстояния между точками с помощью команды pairdist. Сначала я создал функцию с именем nclust, используя код:

nclust <- function(x0, y0, radius, n) 
{return(runifdisc(n, radius, centre=c(x0, y0)))
}

Затем я создал объект, содержащий график:

c1<-plot(rPoissonCluster(5, 0.2, nclust, radius=0.2, n=10))

Output to the plot command for Poisson Clustering in Spatstat

Однако, когда я пытаюсь вычислить расстояния между точками, используя Pairdist, вот так:

pairdist(c1)

Я получаю ошибку:

 Error in as.double(y) : 
 cannot coerce type 'closure' to vector of type 'double'

Я понимаю, что это может быть потому, что c1 такое функция, как рассчитать расстояния между этими точками? Можно ли добавить шкалу к осям x и y графика, чтобы у меня были действительные значения расстояния?

Большое спасибо!

1 Ответ

1 голос
/ 11 февраля 2020

Вы должны присвоить значение процесса кластера c1 и затем построить его впоследствии:

c1<- rPoissonCluster(5, 0.2, nclust, radius=0.2, n=10)
plot(c1)

Результатом является планарный точечный массив класса ppp, и команда plot отправляется в plot.ppp. В вашей оригинальной команде вы сохраняете результат сюжета. Эта команда plot возвращает функцию, которую можно использовать для создания нового графика с теми же параметрами печати (символы, цвета и т. Д. c.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...