Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用数据帧中的标记来子集超帧的点模式_R_Spatstat - Fatal编程技术网

R 如何使用数据帧中的标记来子集超帧的点模式

R 如何使用数据帧中的标记来子集超帧的点模式,r,spatstat,R,Spatstat,我有一个93行的超帧。每行包含ppp类树木的树干图以及地块级别的分组因子。标记的数据框提供特定于点的数据,例如每个点的直径、种类和高度。 我需要根据标记的dataframe对点模式进行子集划分,然后运行L est函数,该函数要求将数据合并。我已经找到了单点模式的子集标记示例和基于超帧列的子集超帧示例,但我没有看到超帧的子集点模式调用具有多个标记的数据帧中的因子级别的示例。任何指导都将不胜感激 我可以按地块级别因子对超帧进行子集划分,比如a、b和c植被类型,然后为每个地块运行一个测试,根据植被类型

我有一个93行的超帧。每行包含ppp类树木的树干图以及地块级别的分组因子。标记的数据框提供特定于点的数据,例如每个点的直径、种类和高度。 我需要根据标记的dataframe对点模式进行子集划分,然后运行L est函数,该函数要求将数据合并。我已经找到了单点模式的子集标记示例和基于超帧列的子集超帧示例,但我没有看到超帧的子集点模式调用具有多个标记的数据帧中的因子级别的示例。任何指导都将不胜感激

我可以按地块级别因子对超帧进行子集划分,比如a、b和c植被类型,然后为每个地块运行一个测试,根据植被类型汇总输出,并绘制汇总的测试图(Baddeley et al.2015第684页提供了一个有用的示例)

但是,我无法根据数据帧的特定标记对超帧的点模式进行子集划分。我不确定我的数据结构是否会导致问题,所以我已经在下面介绍了,或者我只是对与超帧的多点模式相关联的数据帧的标记子集的代码感到困惑(这里是R新手。列表中的列表令人困惑)

数据结构:

    z.list <- mapply(as.ppp, X = df.list, W = window.list, SIMPLIFY=FALSE) 
     #df.list contains x,y coordinates, followed by columns of point specific 
      #data. 
    h <- hyperframe(X=z.list)
    H <- cbind.hyperframe(h, plot.df1)#combine the point pattern and marks 
     #with plot level data
上述内容对我来说似乎是正确的,但我注意到,尽管标记使用str函数打印,
是.multipoint
输出为
FALSE
。不确定这是否是我的问题的一部分。 以下内容适用于位于超帧行中的打印级别因子

    H$L <- with(H, Lest((X),rmax=40))
    L.VT.split <- split(H$L, H$VEG_TYPE) #plot level factor
    L.VT.pool <- anylapply(L.VT.split, pool)
    plot(L.VT.pool,cbind(pooliso, pooltheo, hiiso,loiso)-r~r,
      shade=c("hiiso","loiso"),equal.scales=TRUE, main='')
H$L

我不确定我是否完全理解这个问题,但我会尽力提供答案 一些有用的提示

对于
H
中的每一行,都有一个包含标记的点模式
data.frame中的信息
(三列称为
DBH\u类
向内生长
绘图ID
)。以下是一些具有该结构的假数据:

库(spatstat)
种子(42)
df1 1(ppp)(ppp)
#>2(购买力平价)(购买力平价)
绘图(H$XB,which.marks=“向内生长”)

非常有帮助!现在我了解了如何使用subset函数在hyperframe中创建另一个ppp对象。简单,正是我所需要的。谢谢,太好了。您可以继续并接受答案,因此当人们搜索该站点时,该问题被标记为已回答。
    H$L <- with(H, Lest((X),rmax=40))
    L.VT.split <- split(H$L, H$VEG_TYPE) #plot level factor
    L.VT.pool <- anylapply(L.VT.split, pool)
    plot(L.VT.pool,cbind(pooliso, pooltheo, hiiso,loiso)-r~r,
      shade=c("hiiso","loiso"),equal.scales=TRUE, main='')