0

我有一个数据框

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))

我想ppp通过pppofspatstat包转换为文件。我希望diameterandheight变量是marks,我不能这样做。我试过 f.ex 这个

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

但不起作用。

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

> finpines
Marked planar point pattern: 126 points
Mark variables: diameter, height 
window: rectangle = [-5, 5] x [-8, 2] metres
4

2 回答 2

4

您需要先定义观察窗口,然后才能定义平面点模式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)
于 2016-10-10T10:26:50.137 回答
0

你可以试试这个,但我无法判断你是否可以接受这个警告:

警告消息:在 ppp(df$x, df$y,marks = data.frame(df %>% select(diameter, height))) 中:99 个点被拒绝为位于指定窗口之外

library(spatstat)
library(dplyr)
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))
pp1<-ppp(df$x, df$y,  marks = data.frame(df %>% select(diameter, height)))

输出是:

> pp1
Marked planar point pattern: 1 point
Mark variables: diameter, height 
window: rectangle = [0, 1] x [0, 1] units
*** 99 illegal points stored in attr(,“rejects”) ***
于 2016-10-10T10:11:19.403 回答