R语言 如何计算曼哈顿距离
曼哈顿距离 是N维向量空间中两点之间的距离度量。它被定义为相应维度的坐标之间的绝对距离之和。
例如,在一个有两个点Point1 (x1 ,y1 )和Point2 (x2 ,y2 )的二维空间中,曼哈顿距离由|x1 - x2 | + |y1 - y2 |给出。
方法1:使用公式的方法
在R中,曼哈顿距离是相对于向量计算的。两个向量之间的曼哈顿距离由以下公式给出。
其中。
- vect1是第一个矢量
- vect2是第二个向量
例如,我们给了两个向量,vect1为(3,6,8,9),vect2为(1,7,8,10)。它们的曼哈顿距离为:|3-1|+|6-7|+|8-8|+|9-10|,等于4。
下面是使用两个等长向量的实现方法。
例1 :
输出 。
例2 :
如果两个向量的长度不相等,编译器会给出警告信息。下面是使用两个不等长的向量的实现。
输出 。
方法2:使用dist()函数
R提供了一个内置函数,使用该函数我们可以找到二维向量中每一对独特向量之间的曼哈顿距离。
语法 。
dist(2dVect, method = “manhattan”)
参数:
- 2dVect:二维向量
- method:要使用的距离测量方法。这可以是 “euclidean”, “maximum”, “manhattan”, “canberra”, “binary “中的一个。
返回类型 。
它返回一个 “dist “类的对象
例子1 :
下面是使用dist()函数查找曼哈顿距离的实现。
输出 。
例2 :
注意,二维向量下呈现的所有向量的长度要求是相同的,否则,R编译器会产生一个编译时错误。
输出 。