gpt4 book ai didi

r - 如何为空间数据帧生成k-最近邻矩阵?

转载 作者:行者123 更新时间:2023-12-05 01:32:09 25 4
gpt4 key购买 nike

我有一个大约有 3000 个点的空间数据框。我想生成一个矩阵,为每个点提供 k 个(在本例中为 30 个)最近的邻居。

我可以使用循环来做到这一点,但我觉得应该有一种我不知道的空间点数据帧类的优雅和最佳方式。

最佳答案

最快的大概是用RANN包 - 假设您有 xy :

library(RANN)
m <- as.matrix(nn(data.frame(x=x, y=y, z=rep(0,length(x))), p=30)$nn.idx)

给你一个 3000 x 30 的最近邻矩阵。它比朴素的二次搜索快几个数量级。

编辑:为了完整起见,您选择哪个 ANN 前端并不重要,使用 FNN (由 Spacedman 建议)这将是
library(FNN)
m <- get.knn(data.frame(x=x, y=y), 30)$nn.index

关于r - 如何为空间数据帧生成k-最近邻矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com