如何在Spatstat中提取已保存的信封值?

时间:2017-05-18 15:01:21

标签: r spatstat

我是R& S的新手。 spatstat和我正在使用非均匀对相关函数。我的数据集由分布在几个时间间隔内的点值组成。

sp77.ppp = ppp(sp77.dat$Plot_X, sp77.dat$Plot_Y, window = window77, marks = sp77.dat$STATUS)

Dvall77 = envelope((Y=dv77.ppp[dv77.ppp$marks=='2']),fun=pcfinhom, r=seq(0,20,0.25), nsim=999,divisor = 'd', simulate=expression((rlabel(dv77.ppp)[rlabel(dv77.ppp)$marks=='1']),(rlabel(dv77.ppp)[rlabel(dv77.ppp)$marks=='2'])), savepatterns = T, savefuns = T).

我正在尝试比较多个成对比较(来自不同时间段)并且需要创建一个函数,该函数将在每个'r'值处对每个计算的包络值进行检查,并找出包络之间的最小和最大差异。

我的问题是:如何找到保存的信封值?我知道savefuns = T正在保存所有模拟的包络值,但我找不到如何提取值。摘要(如下)表示存储了值。如何调用这些值并将其提取出来?

> print(Dvall77)

Pointwise critical envelopes for g[inhom](r)

and observed value for ‘(Y = dv77.ppp[dv77.ppp$marks == "2"])’

Edge correction: “iso”

Obtained from 999 evaluations of user-supplied expression

(All simulated function values are stored)

(All simulated point patterns are stored)

Alternative: two.sided

Significance level of pointwise Monte Carlo test: 2/1000 = 0.002

.......................................................................................
      Math.label               Description                                             
r     r                        distance argument r                                     
obs   {hat(g)[inhom]^{obs}}(r) observed value of g[inhom](r) for data pattern          
mmean {bar(g)[inhom]}(r)       sample mean of g[inhom](r) from simulations             
lo    {hat(g)[inhom]^{lo}}(r)  lower pointwise envelope of g[inhom](r) from simulations
hi    {hat(g)[inhom]^{hi}}(r)  upper pointwise envelope of g[inhom](r) from simulations
.......................................................................................
Default plot formula:  .~r
where “.” stands for ‘obs’, ‘mmean’, ‘hi’, ‘lo’
Columns ‘lo’ and ‘hi’ will be plotted as shading (by default)
Recommended range of argument r: [0, 20]
Available range of argument r: [0, 20]

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

如果您希望为每个随机标记的模式访问摘要统计信息(ginhom)的值,则原则上记录在help(envelope.ppp)中。不可否认,这很长,如果你是R和spatstat的新手,很容易迷路。线索位于帮助文件的value部分。结果是data.frame包含一些其他类(envelopefv),并且帮助文件显示为:

  

此外,如果'savepatterns = TRUE',则返回值为        属性“”simpatterns“'是一个包含'nsim'的列表        模拟模式。如果'savefuns = TRUE',则返回值为        属性'“simfuns”'是类'“fv”'的对象        包含为每个'nsim'计算的汇总函数        模拟模式。

当然,您需要知道如何访问R中的属性,这是使用attr完成的:

funs <- attr(Dvall77, "simfuns")

然后funsdata.frame(和fv - 对象),其中包含每个随机标记模式的所有函数值。

我无法从你的问题中真正理解你是否只需要定义包络的上下曲线的值?在这种情况下,您只需像普通data.frame一样访问它们(并且无需在信封中保存所有单个函数值):

lo <- Dvall77$lo
hi <- Dvall77$hi
d <- hi - lo

你可以做得更优雅:

d <- with(Dvall77, hi - lo)