【发布时间】:2016-05-14 05:42:33
【问题描述】:
我有 2 个数据框(df1 和 df2),由三列组成; x 坐标、y 坐标、类别(有 5 个级别 A-E)。所以我基本上有两组点数据,每个点都被分配到一个类别
例如
X Y Cat
1 1.5 A
2 1.5 B
3.3 1.9 C
等等... (尽管我的两个数据框中都有 100 个点)
我想从第二个数据帧 (df2) 中为我的第一个数据帧 (df1) 中的每个点找到同一类别的最近邻。
我在spatstat包中使用了nncross,用df2为df1中的每个点找到最近的邻居,然后列出这些距离中的每一个,如下所示;
# 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 对象中的类别标签(由标记定义)来从同一类别中找到最近的邻居。我相信它应该是相当直截了当的,但如果有人有任何建议或任何替代方法来达到相同的结果,我将不胜感激。
【问题讨论】:
标签: r nearest-neighbor spatstat