使用 spatstat 包将数据框转换为 ppp 对象
converting data frame to ppp object using spatstat package
我有一个数据框
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))
我想通过 spatstat
包的 ppp
转换为 ppp
文件。我希望 diameter
和 height
变量是 marks
,但我不能这样做。我试过 f.ex 这个
pp1<-ppp(df$x, df$y, marks = data.frame(df %>% select(diameter, height)))
但不起作用。
我想要的输出类似于附加到 spatstat
包
的数据文件 finepines
> finpines
Marked planar point pattern: 126 points
Mark variables: diameter, height
window: rectangle = [-5, 5] x [-8, 2] metres
你可以试试这个,但我无法判断你是否可以接受这个警告:
Warning message:
In ppp(df$x, df$y, marks = data.frame(df %>% select(diameter, height))) :
99 points were rejected as lying outside the specified window
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”) ***
您需要先定义观察点 window,然后才能定义平面点模式 ppp
,因为我们需要知道观察点的位置和没有观察点的位置。例如。该过程的强度是每个区域的平均点数,因此我们需要知道研究区域的面积。
在您的示例中,我假设研究区域(观察 window)为 [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)
我有一个数据框
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))
我想通过 spatstat
包的 ppp
转换为 ppp
文件。我希望 diameter
和 height
变量是 marks
,但我不能这样做。我试过 f.ex 这个
pp1<-ppp(df$x, df$y, marks = data.frame(df %>% select(diameter, height)))
但不起作用。
我想要的输出类似于附加到 spatstat
包
finepines
> finpines
Marked planar point pattern: 126 points
Mark variables: diameter, height
window: rectangle = [-5, 5] x [-8, 2] metres
你可以试试这个,但我无法判断你是否可以接受这个警告:
Warning message: In ppp(df$x, df$y, marks = data.frame(df %>% select(diameter, height))) : 99 points were rejected as lying outside the specified window
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”) ***
您需要先定义观察点 window,然后才能定义平面点模式 ppp
,因为我们需要知道观察点的位置和没有观察点的位置。例如。该过程的强度是每个区域的平均点数,因此我们需要知道研究区域的面积。
在您的示例中,我假设研究区域(观察 window)为 [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)