gpt4 book ai didi

r - 具有大量点的 dist 函数

转载 作者:行者123 更新时间:2023-12-04 19:09:46 26 4
gpt4 key购买 nike

我正在使用 dist {stats}函数来计算点之间的距离,我的问题是我有 24469 个点,而 dist 函数的输出给了我一个长度为 18705786 的向量,而不是矩阵。我已经尝试导出 as.matrix ,但文件有 2 大。

我怎样才能访问每个距离对应的点?

例如 which(distance<=700)给了我在向量中的位置,但是我怎样才能得到这个距离对应的点的信息?

最佳答案

有一些事情你可以尝试,也取决于你到底需要什么:

  • 循环计算距离,只保留符合条件的距离。特别是当匹配的数量远小于距离矩阵的总大小时,这样可以节省大量的 RAM 使用量。如果这个循环在纯 R 中实现,它可能会非常慢,这也是 dist 不使用 R 但我相信 C 来执行计算的原因。这可能意味着您得到了结果,但必须等待一段时间。或者,优秀的 Rcpp 包可以让你用 C/C++ 写下来,可能会快得多。
  • 开始使用 bigmemory 之类的包来存储距离矩阵。然后在一个循环中构建它并迭代地将它存储在 bigmemory 对象中(我之前没有使用过 bigmemory,所以我不知道确切的细节)。然后在构建矩阵后,您可以访问它以提取所需的结果。实际上,在 R 中处理大数据的所有技巧都适用于此项目符号。见例如R SO posts on big data

  • 一些有趣的链接(在谷歌上搜索 r distance matrix for large vector ):
  • Efficient (memory-wise) function for repeated distance matrix calculations AND chunking of extra large distance matrices
  • (你很幸运!)http://stevemosher.wordpress.com/2012/04/08/using-bigmemory-for-a-distance-matrix/
  • 关于r - 具有大量点的 dist 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190214/

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