首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用spatstat包将数据帧转换为ppp对象

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

Stack Overflow用户
提问于 2016-10-10 10:00:43
回答 2查看 2.2K关注 0票数 0

我有一个数据框架

代码语言:javascript
复制
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 of spatstat包将其转换为spatstat文件。我希望diameterheight变量是marks,而我不能这样做。我试过f.ex这个

代码语言:javascript
复制
pp1<-ppp(df$x, df$y,  marks = data.frame(df %>% select(diameter, height)))

但不起作用。

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

代码语言:javascript
复制
> finpines
Marked planar point pattern: 126 points
Mark variables: diameter, height 
window: rectangle = [-5, 5] x [-8, 2] metres
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-10 10:26:50

在定义平面点模式ppp之前,您需要定义观察窗口,因为我们需要知道观察点的位置和没有点的位置。这个过程的强度是每个区域的平均点数,所以我们需要知道研究区域的面积。

在你的例子中,我假设学习区域(观察窗口)是0,11x0,11。然后你可以:

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2016-10-10 10:11:19

你可以试一试,但我不能判断你是否能接受这个警告:

警告信息:在ppp中(df$x,df$y,mark= data.frame(df %>% select(直径,高度)):99点被拒绝,因为它位于指定的窗口之外。

代码语言:javascript
复制
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)))

产出如下:

代码语言:javascript
复制
> 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”) ***
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39955785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档