2012-11-21 169 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

请更精确地给出一个例子来说明问题的复杂性。但是,我的例子是独立于行和列号的。 –