2014-01-05 35 views
0

我目前正在嘗試操縱一個滿是零的矩陣,我想用數字填充。 矩陣的目的是描述密度分佈。將不完整的數據導入到R中的矩陣

事情是,爲了做到這一點,我只有三個矢量描述矩陣中的非零值。 也就是說,第一個包含包含數字的單元格的縱座標值,第二個包含橫座標值,第三個包含密度值。

例如,如果我的在[3,2]細胞3的密度,我有三個矢量作爲這樣:

向量1 =(3),vector2 =(2),的Vector3 = (3)

我沒有成功地試圖用for循環填充它,並且由於我對R不太熟練,我很難弄清楚如何填充該矩陣。

在此先感謝您的回答,如果您有任何問題,請不要猶豫。

+1

'm [cbind(vector1,vector2)] < - vector3'其中'm'是矩陣對象。 –

回答

2

使用R內置矢量化方法,這是一個美麗的微風。您正在尋找替代功能[<-。這裏是一個例子:

m <- matrix(0 , 4 , 4) 
#  [,1] [,2] [,3] [,4] 
#[1,] 0 0 0 0 
#[2,] 0 0 0 0 
#[3,] 0 0 0 0 
#[4,] 0 0 0 0 


v1 <- c(3 , 2 , 1) 
v2 <- c(2 , 1 , 4) 
v3 <- c(10, 20 , 30) 

m[ cbind(v1 , v2) ] <- v3 
#  [,1] [,2] [,3] [,4] 
#[1,] 0 0 0 30 
#[2,] 20 0 0 0 
#[3,] 0 10 0 0 
#[4,] 0 0 0 0 
+1

哇! 儘量簡單,謝謝你Simon! – Dieguito