2012-11-21 188 views
0

我是R新人,有什麼應該是一個足夠簡單的問題來回答;任何幫助將不勝感激。R-用矩陣的平均值替換矩陣中的值?

情況是我有一個製表符分隔的數據矩陣(數據矩陣.txt)像下面的最後一列包含的組信息。

   sampleA sampleB  sampleC Group 
    obs11  23.2  52.5  -86.3  1 
    obs12  -86.3  32.5  -84.7  1 
    obs41  -76.2  35.8  -16.3  2 
    obs74  23.2  32.5  -86.8  2 
    obs82  -86.2  52.8  -83.2  3 
    obs38  -36.2  59.5  -74.3  3 

我想與該組

如何一組平均,而不是一個行或列平均中的R來計算的平均值來替換每個組的值?

我該如何使用這個值來替換原始值? replace()函數在這種情況下是可用還是僅用於替換兩個已知值?

在此先感謝

回答

0

包ddply應該做的伎倆。

dat <- as.data.frame(matrix(runif(80),ncol=4)) 
dat$group <- sample(letters[1:4],size=20,replace=T) 
head(dat) 

library(plyr) 
ddply(.data = dat, .variables =.(group), colwise(mean)) 

結果

group  V1  V2  V3  V4 
1  a 0.4741673 0.7669612 0.5043857 0.5039938 
2  b 0.3648794 0.5776748 0.4033758 0.5748613 
3  c 0.1450466 0.5399372 0.2440170 0.5124578 
4  d 0.4249183 0.3252093 0.5467726 0.4416924 
+0

謝謝你的提示,將考慮讓安裝此packae您好,我意識到我應該在我的問題更具體,你會怎麼做時,列數和每個組中的行(並且在每個mxtrix中都包含)是未知的,並且因組而不同? – sinead

+0

請更精確地給出一個例子來說明問題的複雜性。但是,我的例子是獨立於行和列號的。 –