使用 spatstat 包将数据帧转换为 ppp 对象

Mat*_*981 0 r spatstat

我有一个数据框

df <- data.frame(x = rep(seq(1:10), 10), y = rep(seq(1:10), each = 10), diameter = rnorm(100, 0.3, 0.03), height = rnorm(100, 0.2, 001))
Run Code Online (Sandbox Code Playgroud)

ppp我想通过pppof包转换为文件spatstat。我希望diameterheight变量是,marks但我不能这样做。我尝试过这个

pp1<-ppp(df$x, df$y,  marks = data.frame(df %>% select(diameter, height)))
Run Code Online (Sandbox Code Playgroud)

但不起作用。

我想要的输出类似于finepines附加到spatstat包中的数据文件

> finpines
Marked planar point pattern: 126 points
Mark variables: diameter, height 
window: rectangle = [-5, 5] x [-8, 2] metres
Run Code Online (Sandbox Code Playgroud)

Ege*_*bak 5

您需要先定义观察窗口,然后才能定义平面点图案,ppp因为我们需要知道观察到点的位置和没有观察到点的位置。例如,过程的强度是每个区域的平均点数,因此我们需要知道研究区域的面积。

在您的示例中,我假设研究区域(观察窗口)为 [0, 11] x [0, 11]。然后你可以这样做:

library(spatstat)
df <- data.frame(x = rep(seq(1:10), 10),
                 y = rep(seq(1:10), each = 10),
                 diameter = rnorm(100, 0.3, 0.03),
                 height = rnorm(100, 0.2, 001))
W <- owin( c(0, 11), c(0,11) )
pp1 <- as.ppp( df, W = W)
Run Code Online (Sandbox Code Playgroud)