小编use*_*845的帖子

计算数据帧的每一行与另一个数据帧中的所有其他行之间的欧几里德距离

我需要生成一个数据帧,其中数据帧的每一行与另一个数据帧的所有其他行之间的欧几里德距离最小.我的数据帧很大(大约40,000行).这是我现在可以解决的问题.

x<-matrix(c(3,6,3,4,8),nrow=5,ncol=7,byrow = TRUE)     
y<-matrix(c(1,4,4,1,9),nrow=5,ncol=7,byrow = TRUE)


sed.dist<-numeric(5)
for (i in 1:(length(sed.dist))) {
sed.dist[i]<-(sqrt(sum((y[i,1:7] - x[i,1:7])^2)))
}
Run Code Online (Sandbox Code Playgroud)

但这只适用于i = j.我基本上需要的是通过逐行循环每一行来找到最小的欧氏距离(y [1,1:7],然后是y [2,1:7],依此类推直到i = 5)"y"数据帧与"x"数据帧的所有行(x [i,1:7]).每次这样做,我需要它来找到每个计算的最小欧几里德距离y数据帧的第i行和x数据帧的所有行,并将其存储在另一个数据帧中.

loops for-loop r euclidean-distance

8
推荐指数
2
解决办法
6046
查看次数

标签 统计

euclidean-distance ×1

for-loop ×1

loops ×1

r ×1