r中2个数据集之间的向量欧几里得距离

时间:2018-11-28 10:23:53

标签: r vectorization euclidean-distance

我有2个数据帧(temp_inp和temp),分别具有5和50k行,并且它们都具有约3k列。

我想计算数据框1的所有行与数据框2之间的欧几里德距离[(x1-x2)^ 2-不需要取平方根或除以nrow-我只需要最小距离的行]。

所需的最终输出将具有 行=来自temp(50k)的行 列= temp_inp(5)中的行

在此之后,我要以5行与数据框1保持最小距离。

请注意,由于数据大小,类似rbind&dist函数的功能将无法使用。我试过的是这个

for (i in c(1:nrow(temp_inp))) {
for (j in c(1:nrow(temp))) {
  temp1[j,i] <- sum((temp[j,]-temp_inp[i,])^2)
}}

这耗费了疯狂的时间...(8小时) 我试着找我寻找相同代码的矢量化版本。如果您对此有任何想法或知道任何内置功能/软件包可以帮助我,请帮助我。

0 个答案:

没有答案