我正在使用 dist {stats}
函数来计算点之间的距离,我的问题是我有 24469 个点,而 dist 函数的输出给了我一个长度为 18705786 的向量,而不是矩阵。我已经尝试导出 as.matrix
,但文件有 2 大。
我怎样才能访问每个距离对应的点?
例如 which(distance<=700)
给了我在向量中的位置,但是我怎样才能得到这个距离对应的点的信息?
最佳答案
有一些事情你可以尝试,也取决于你到底需要什么:
dist
不使用 R 但我相信 C 来执行计算的原因。这可能意味着您得到了结果,但必须等待一段时间。或者,优秀的 Rcpp
包可以让你用 C/C++ 写下来,可能会快得多。 bigmemory
之类的包来存储距离矩阵。然后在一个循环中构建它并迭代地将它存储在 bigmemory 对象中(我之前没有使用过 bigmemory,所以我不知道确切的细节)。然后在构建矩阵后,您可以访问它以提取所需的结果。实际上,在 R 中处理大数据的所有技巧都适用于此项目符号。见例如R SO posts on big data 。 一些有趣的链接(在谷歌上搜索
r distance matrix for large vector
):关于r - 具有大量点的 dist 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190214/