【发布时间】:2016-04-24 23:11:55
【问题描述】:
假设我有一个如下所示的矩阵,我将其转换为 dist 类对象(无对角线),然后转换为向量以供以后使用。
m = matrix(c(0,1,2,3, 1,0,3,4, 2,3,0,5, 3,4,5,0), nrow=4)
#m:
[,1] [,2] [,3] [,4]
[1,] 0 1 2 3
[2,] 1 0 3 4
[3,] 2 3 0 5
[4,] 3 4 5 0
md = as.dist(m, diag=F)
# md:
1 2 3
2 1
3 2 3
4 3 4 5
mdv = as.vector(md)
# 1 2 3 3 4 5
我可以像往常一样使用[] 访问原始矩阵,并且我可以使用m[ 3+((2-1)*4) ] 轻松访问一维索引(例如,第 3 行,第 2 列)。 dist 对象(和向量)是一维的,但仅由原始矩阵的下三角形组成(并且由于删除了对角线,因此每个原始 col/row 中也缺少一个元素)。
我以后如何访问向量mdv 中的等效元素?所以例如我怎样才能访问对象mdv 中的m[3,2](值3)的等价物? (不是按值,因为可以有重复的值,而是按索引)相关问答解决了 dist 对象上as.matrix 的类似问题,但这对我来说不起作用(因为我需要处理向量)。
【问题讨论】:
-
您可以使用
as.matrix将dist转换为matrix