繁体   English   中英

从两个向量 (n,1) 构建 R 距离矩阵

[英]R distance matrix build from two vectors (n,1)

我有两个向量: x (n,1)y (n,1)实数值,我想从这些向量中创建一个矩阵M (n,n) ,其中包含每两对之间的距离。

您可以使用outer函数

x <- sample(5)
y <- sample(5)
x
## [1] 1 5 3 4 2

y
## [1] 2 3 5 1 4

outer(x, y, "-")
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   -1   -2   -4    0   -3
## [2,]    3    2    0    4    1
## [3,]    1    0   -2    2   -1
## [4,]    2    1   -1    3    0
## [5,]    0   -1   -3    1   -2

您可以用任何其他可以接受 2 个向量的 FUN 替换"-"

看看?dist其中:

计算并返回通过使用指定的距离度量来计算数据矩阵行之间的距离而计算出的距离矩阵。

例子:

> set.seed(1) # to make it reproducible
> dat <- data.frame(x = sample(5), y = sample(5))  # sample values
  # calculating the distance between each row
> transform(dat, distance=apply(dat, 1, dist))  
  x y distance
1 2 5        3
2 5 4        1
3 4 2        2
4 3 3        0
5 1 1        0

支付仔细注意method这几个方法来计算距离矩阵提供。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM