我有一个距离向量,我可以从其他一些程序中获得,并希望将其转换为<script>
语言的dist
对象。
下面我举例说明这样的矢量看起来像:R
的计算方法与其他程序计算距离矢量的方式相同。理想情况下,我想将此向量转换为距离矩阵(distVector
对象),而不会浪费资源。
我想我可以通过将其复制为上三角和下三角矩阵,将对角线设置为0,并将其与dist
进行比较,将其转换为矩阵。 1}}对象结构(比较下面的输出)。然后,再次,首先创建一个完整的矩阵然后(可能?)再次将它减少到upside down
对象中的向量似乎对我来说是浪费。还有更好的方法吗?
示例代码(注意:我无法更改计算dist
的方式):
dist
输出:将distVector
与rawData<-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
非常感谢, 托马斯。