假設我有一個看起來像這樣的矩陣,並將其轉換爲dist
類對象(無對角線),然後將其轉換爲向量爲了以後的目的。相當於二維矩陣索引的dist矩陣(一維向量)中的索引,在R
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
我可以訪問原始矩陣照常與[]
,我也很容易訪問的一維指數(,例如第3行,列2)使用m[ 3+((2-1)*4) ]
。 dist對象(和向量)是一維的,但是隻包含原始矩陣的下三角形(並且由於對角線已被刪除,所以也沒有來自每個原始列/行的一個元素)。
我以後如何訪問矢量mdv
中的等效元素?所以例如我如何訪問對象mdv
中的m[3,2]
(值3)的等效項? (不是按值,因爲可能有重複的值,而是通過索引)相關Q & A解決dist對象上as.matrix
的類似問題,但是這對我沒有幫助(因爲我需要處理矢量)。
您可以轉換'dist'到'matrix'用'as.matrix' – akrun