【发布时间】:2020-11-13 15:33:28
【问题描述】:
在 spatstat 中使用描述泊松集群过程的代码。一次一个地分解每一行代码以便理解。容易上手。
library(spatstat)
lambda<-100
win<-owin(c(0,1),c(0,1))
n.seeds<-lambda*win$xrange[2]*win$yrange[2]
一旦定义了窗口,我就会使用随机生成函数生成我的点
x=runif(min=win$xrange[1],max=win$xrange[2],n=pmax(1,n.seeds))
y=runif(min=win$yrange[1],max=win$yrange[2],n=pmax(1,n.seeds))
我知道使用 ppp 函数可以立即绘制出来
seeds<-ppp(x=x,
y=y,
window=win)
plot(seeds)
下一行我为 ppp 对象添加标记,它显然是在描述点的旋转角度,我现在不明白这是如何工作的,但没关系,我稍后会弄清楚。
marks<-data.frame(angles=runif(n=pmax(1,n.seeds),min=0,max=2*pi))
seeds1<-ppp(x=x,
y=y,
window=win,
marks=marks)
我遇到的第一个问题是,一个名为 pops 的对象被添加到 ppp 对象中,该对象描述了窗口的人口。我了解这些值是如何得出的,它是给定输入值 mu 的泊松分布,它可以是任何值,并且观察总数等于窗口中的点。
seeds2<-ppp(x=x,
y=y,
window=win,
marks=marks,
pops=rpois(lambda=5,n=pmax(1,n.seeds)))
我的第一个问题是,如何在 ppp 对象中添加一个没有分类的变量?我检查了 ppp 文档,没有提到 pops。
我的第二个问题是关于使用双变量,下一行需要一个 sapply 函数来定义维度。
dim1<-pmax(1,sapply(seeds1$marks$pops, FUN=function(x)rpois(n=1,sqrt(x))))
我从未见过 $ 函数被使用过两次,而seeds2$marks$pop 返回的 $ 运算符对原子向量无效。你能解释一下这里发生了什么吗?
非常感谢。
【问题讨论】: