3

私は 2 つのベクトルを持っています:x (n,1)と実数値で、これらのベクトルから各 2 つのペア間の距離を含むy (n,1)行列を作成したいと考えています。M (n,n)

4

2 に答える 2

4

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 と置き換えることができます。

于 2013-10-29T09:35:09.937 に答える
1

見てみましょう?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距離行列を計算するためのいくつかの方法を提供するものに注意してください。

于 2013-10-29T09:31:02.547 に答える