"Error in as.double(y) : cannot coerce type 'closure' to vector of type 'double'" 当我尝试测量成对距离时

"Error in as.double(y) : cannot coerce type 'closure' to vector of type 'double'" when I try to measure the pairwise distances

我正在尝试使用 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))

但是,当我尝试像这样使用 pairdist 计算点之间的距离时:

pairdist(c1)

我收到错误:

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

我理解这可能是因为 c1 是一个函数,我该如何计算这些点之间的距离?是否可以在绘图的 x 轴和 y 轴上添加比例尺,以便获得实际距离值?

非常感谢!

你应该将集群进程的值赋给c1,然后绘制它:

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

结果是 class ppp 的平面点模式,绘图命令被调度到 plot.ppp。在您的原始命令中,您正在保存绘图的结果。此绘图命令 returns 一个函数,可用于使用相同的绘图选项(字符、颜色等)制作新绘图。