R 具有大量点的距离函数

R 具有大量点的距离函数,r,R,我使用dist{stats}函数来计算点之间的距离,我的问题是我有24469个点,dist函数的输出给我一个长度为18705786的向量,而不是矩阵。我已经尝试将导出为.matrix,但是文件太大了 我如何访问每个距离对应的点 例如which(distance您可以尝试一些东西,具体取决于您需要什么: 计算循环中的距离,只保留那些与标准匹配的距离。特别是当匹配的数量远小于距离矩阵的总大小时,这节省了大量的RAM使用。如果用纯R实现这个循环,它可能会非常慢,这也是为什么dist不使用R的原因,但

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

我如何访问每个距离对应的点


例如
which(distance您可以尝试一些东西,具体取决于您需要什么:

  • 计算循环中的距离,只保留那些与标准匹配的距离。特别是当匹配的数量远小于距离矩阵的总大小时,这节省了大量的RAM使用。如果用纯R实现这个循环,它可能会非常慢,这也是为什么
    dist
    不使用R的原因,但我相信C到pe重新格式化计算。这可能意味着您得到了结果,但需要等待一段时间。或者,优秀的
    Rcpp
    软件包将允许您用C/C++写下计算结果,这样可能会更快
  • 开始使用像
    bigmemory
    这样的包来存储距离矩阵。然后在循环中构建它,并将其迭代存储在bigmemory对象中(我以前没有使用过bigmemory,所以我不知道确切的细节)。然后在构建矩阵后,您可以访问它以提取所需的结果。实际上,在R中处理大数据的所有技巧都适用于此项目符号。请参阅例如
一些有趣的链接(在谷歌上搜索大向量的距离矩阵时发现):

  • (你真幸运!)