在R中将距离矢量转换为距离对象的有效方法(理想情况下不创建全距离矩阵)

时间:2015-12-16 02:38:46

标签: r matrix vector distance

我有一个距离向量,我可以从其他一些程序中获得,并希望将其转换为<script>语言的dist对象。

下面我举例说明这样的矢量看起来像R的计算方法与其他程序计算距离矢量的方式相同。理想情况下,我想将此向量转换为距离矩阵(distVector对象),而不会浪费资源。

我想我可以通过将其复制为上三角和下三角矩阵,将对角线设置为0,并将其与dist进行比较,将其转换为矩阵。 1}}对象结构(比较下面的输出)。然后,再次,首先创建一个完整的矩阵然后(可能?)再次将它减少到upside down对象中的向量似乎对我来说是浪费。还有更好的方法吗?

示例代码(注意:我无法更改计算dist的方式):

dist

输出:将distVectorrawData<-matrix(c(1,1,1,1.1,1,1,1,1,1.2,2,2,2,2.2,2,2,2,2.2,2.2,3,3,3,3.4,3,3),ncol=3,byrow=TRUE); distVector<-integer(0); for(i in 1:dim(rawData)[1]) { for(j in (i+1):dim(rawData)[1]) { a <- (rawData[i,]-rawData[j,]); distVector <- c(distVector, sqrt(a %*% a)); } } print(distVector) print(dist(rawData)) 函数的输出进行比较,它是颠倒的)

distVector

非常感谢,   托马斯。

0 个答案:

没有答案