问题描述
在 spatstat 中,如果您有重复项或长度等于 ppp 对象中点数的整数(重数)的数值向量,则有许多函数返回逻辑向量。我找不到允许您将多重性结果作为标记直接添加到 ppp 对象的函数。你怎么能做到这一点?您如何最终得到一个新的 ppp 对象,其中包含每对坐标中的事件计数作为标记?
另一种提问方式是,multiplicity.ppp 产生的结果向量的顺序是如何确定的?假设您已经在 ppp 对象 x 中测试了多重性,并基于这个“multiple_x”创建了一个向量。
x <- ppp(x = mycoords[,1],y = mycoords[,2],window = window,check = T)
multiple_x <- multiplicity.ppp(x)
你能简单地使用原始坐标和新向量作为标记创建一个新的 ppp 对象吗?
x <- ppp(x = mycoords[,check = T,marks = multiple_x)
非常感谢。
解决方法
您可以按照您的建议使用 ppp
创建新的点模式。
但是使用习语 X
将标记分配给现有的点模式 marks(X) <- value
会容易得多。 (请参阅 marks<-.ppp
的帮助)
示例:
Y <- X
marks(Y) <- multiplicity(X)
那么 Y
与 X
的模式相同,只是每个点都用一个整数标记,表示同一位置的点数。
如果你想折叠点模式 X
中的重复点,只保留每个重复点的一个实例,但用一个标记表示它的多重性,那么就做
Z <- Y[!duplicated(X)]
multiplicity.ppp
的帮助文件中给出了示例