计算大型数据集的欧氏距离

时间:2012-04-19 01:58:08

标签: r distance

我必须计算列车和测试数据之间的欧几里德距离。列车数据的总长度是1389,测试数据是364.它基本上是来自美国邮政信封的手写邮政编码的数据,从website的“统计学习元素”下载。

我是初学者,只是阅读R包中的数据。我无法开始计算列车和测试数据之间的距离。任何人都可以帮我解释一下如何为这些数据生成循环吗?

我会很感激。

1 个答案:

答案 0 :(得分:6)

对于欧几里德距离,我喜欢使用rdist包中的fields。与dist包相比stats的一个优点是,它可以将两个矩阵作为输入:

train.data <- matrix(runif(1389*2), ncol = 2)
test.data  <- matrix(runif(364*2),  ncol = 2)

library(fields)
distances <- rdist(train.data, test.data)
dim(distances)
# [1] 1389  364