[注意,我写了这个问题,于是找到了答案。 我想也许别人想知道的话,所以我的情况下,只是发表了答案。 我不知道这是否是“做事情”。
假设我想一个向量的符号距离矩阵,即距离的并不总是积极的,但也可以是负的。 您不能使用
DIST()
因为它返回的绝对值。
[注意,我写了这个问题,于是找到了答案。 我想也许别人想知道的话,所以我的情况下,只是发表了答案。 我不知道这是否是“做事情”。
假设我想一个向量的符号距离矩阵,即距离的并不总是积极的,但也可以是负的。 您不能使用
DIST()
因为它返回的绝对值。
这里的另一种方法,这是更快,需要更少的内存:
y <- sample (1 : 4)
distmat <- outer (y, y, `-`)
收益率:
> distmat
[,1] [,2] [,3] [,4]
[1,] 0 1 3 2
[2,] -1 0 2 1
[3,] -3 -2 0 -1
[4,] -2 -1 1 0
## not sure why you want the upper triangular NA
distmat[upper.tri(distmat,diag=TRUE)]<-NA
但你可能想:
> as.dist (distmat)
1 2 3
2 -1
3 -3 -2
4 -2 -1 1
使用应用:
y<-seq(1:10)
distmat<-as.data.frame(apply(as.matrix(y),1,function(x) y-x))
distmat[upper.tri(distmat,diag=TRUE)]<-NA