【发布时间】:2015-07-21 19:45:19
【问题描述】:
我希望在 R 中以最快的方式计算一个向量中每个元素与另一个向量中每个元素之间的距离。一个小例子是:
distf<-function(a,b) abs(a-b)
x<-c(1,2,3)
y<-c(1,1,1)
result<-outer(x,y, distf)
问题是我的 x 和 y 现在的长度分别为 30,000,并且 R 在尝试执行此计算时崩溃。这只是做一次,但我必须在模拟研究中重复这个过程 1000 次。有没有更快的功能可以实现这一点?
我最终需要确定哪些距离小于固定数字/卡尺。我最终会研究很多这样的固定卡尺,因此,我需要保存所有这些距离,尤其是在计算要求如此之高的情况下。 R 包 optmatch 中名为 caliper 的函数直接执行此过程,但也无法处理如此大的计算。
【问题讨论】:
-
您是否需要最后的所有 4500 万(给予或接受)成对距离,还是需要基于这些距离进行其他计算?
-
我需要确定这些距离中的哪些距离小于预先指定的数字/卡尺,用 1 替换小于某个距离的距离,用 0 代替。我将需要所有的距离,因为我希望最终研究不同的卡尺。我在 optmatch 包中尝试了一个名为 caliper 的函数,它直接执行此过程,但它也无法处理如此大的计算。
-
您的问题中应该有该信息。
-
好的,已编辑,谢谢。