如何将共享相同坐标的点数作为标记添加到 ppp 对象?

问题描述

在 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)

那么 YX 的模式相同,只是每个点都用一个整数标记,表示同一位置的点数。

如果你想折叠点模式 X 中的重复点,只保留每个重复点的一个实例,但用一个标记表示它的多重性,那么就做

Z <- Y[!duplicated(X)]

multiplicity.ppp 的帮助文件中给出了示例