我有 2 个数据框(df1 和 df2),由三列组成;x 坐标,y 坐标,类别(有 5 个级别 AE)。所以我基本上有两组点数据,每个点都分配给一个类别
例如
X Y Cat
1 1.5 A
2 1.5 B
3.3 1.9 C
等等......(虽然我的两个数据框都有100个点)
我想从第二个数据帧(df2)中为我的第一个数据帧(df1)中的每个点找到相同类别的最近邻居。
我在包 spatstat 中使用了 nncross 来为 df1 中的每个点与 df2 找到最近的邻居,然后列出这些距离中的每一个,如下所示;
# Convert the dataframes to ppp objects
df1.ppp <- ppp(df1$X,df1$Y,c(0,10),c(0,10),marks=df1$Cat)
df2.ppp <- ppp(df2$X,df2$Y,c(0,10),c(0,10),marks=df2$Cat)
# Produce anfrom output that lists the distance from each point in df1 to its nearest neighbour in df2
out<-nncross(X=df1.ppp,Y=df2.ppp,what=c("dist","which"))
但是我正在努力弄清楚如何使用存储在 ppp 对象中的类别标签(由标记定义)来从同一类别中找到最近的邻居。我相信它应该是相当直截了当的,但如果有人有任何建议或任何替代方法来达到相同的结果,我将不胜感激。