2012-10-30 115 views
0

基本上,我計算出的矩陣有沒有辦法用外推數據填充矩陣?

> mat <- matrix(c(45,34,1,3,4325,23,1,2,5,7,3,4,32,734,2),ncol=3) 
> mat 
    [,1] [,2] [,3] 
[1,] 45 23 3 
[2,] 34 1 4 
[3,] 1 2 32 
[4,] 3 5 734 
[5,] 4325 7 2 

> mat2 <-t(rowMeans(mat)) 
> mat2 
     [,1] [,2]  [,3]  [,4]  [,5] 
[1,] 23.66667 13 11.66667 247.3333 1444.667 
> dim(mat2) 
[1] 1 5 

的每一行的平均值我想要做的是填補空矩陣與計算值是什麼使得它看起來像「MAT3」

> mat2 <- matrix(numeric(0), 5,5) 
> mat2 
    [,1] [,2] [,3] [,4] [,5] 
[1,] NA NA NA NA NA 
[2,] NA NA NA NA NA 
[3,] NA NA NA NA NA 
[4,] NA NA NA NA NA 
[5,] NA NA NA NA NA 


> mat3 
      [,1]  [,2]   [,5] 
[1,] 23.66667 23.66667 .... 23.66667 
[2,] 13.00000 13.00000 .... 13.00000 
[3,] 11.66667 11.66667 .... 11.66667 
[4,] 247.3333 247.3333 .... 247.3333 
[5,] 1444.667 1444.667 .... 1444.667 

有沒有辦法做到這一點,而不是手動填充每個單元?

+0

喬蘭的答案很好。我只想指出,這不是推斷。你所要求的純粹是一些計算的重複。 –

回答

2

是經由R個的回收功能:

mat <- matrix(c(45,34,1,3,4325,23,1,2,5,7,3,4,32,734,2),ncol=3) 
mat2 <- rowMeans(mat) 
mat2 
[1] 23.66667 13.00000 11.66667 247.33333 1444.66667 
> matrix(mat2,5,5) 

      [,1]  [,2]  [,3]  [,4]  [,5] 
[1,] 23.66667 23.66667 23.66667 23.66667 23.66667 
[2,] 13.00000 13.00000 13.00000 13.00000 13.00000 
[3,] 11.66667 11.66667 11.66667 11.66667 11.66667 
[4,] 247.33333 247.33333 247.33333 247.33333 247.33333 
[5,] 1444.66667 1444.66667 1444.66667 1444.66667 1444.66667 

當你給matrix長度5的向量,並告訴它生成的矩陣應該是5x5的,它擴展了您的載體來自動填充矩陣的其餘部分。

+0

那很簡單。謝謝。 –