2013-10-09 85 views
0

我有一個熔融的矩陣A:轉換熔融矩陣的矩陣中的R

A = 
1 1 1 
2 1 0 
2 2 1 
3 1 0 
3 2 0 
3 3 1 

我想將其轉換爲乙矩陣:

B: 
1 0 0 
0 1 0 
0 0 1 

該矩陣是對稱的。

我們可以使用「重塑」包容易熔化的基質。我們怎樣才能做到這一點?

這是很容易使用for循環,但實在是太慢了。

B <- matrix(0,nrow=3,ncol=3) 

for(i in 1:nrow(A)) 
{ 
    B[A[i,1],A[i,2]] = A[i,3] 
} 
+0

你是一個三列的矩陣,而不是一個「三列data.frame」,但我想你會發現答案有或關於該問題的右側鏈接的問題之一。 – Frank

回答

0
B <- matrix(0,nrow=3,ncol=3) 
B[ A[, 1:2] ] <- A[,3] 

我們不需要任何steenkin'循環這裏。