计算每行仅三个值的平均值

时间:2014-10-16 13:51:41

标签: r

我有一个像这样的矩阵:

mt1=matrix(1:144,ncol=12,nrow=12)

而且我只想连续计算3个值的均值。这些是 三个第一个值:

   [,1] [,2] [,3] 
[1,]  1   13   25

平均值应为13

接下来的三个值相同,接下来的三个值相同..依此类推,直到行结束。

我知道我必须使用apply函数,但是我无法想出将均值仅应用于仅针对一系列行的特定值,然后再应用于下一行序列,并获取然后作为结果,每行只有3个值的平均值。

非常感谢!

3 个答案:

答案 0 :(得分:6)

另一种选择:

rowMeans(mt1[,1:3])
#[1] 13 14 15 16 17 18 19 20 21 22 23 24

答案 1 :(得分:1)

尝试:

> apply(mm, 1, function(x) mean(x[1:3]))
[1] 13 14 15 16 17 18 19 20 21 22 23 24

1,13,25的平均值不是29而是13

答案 2 :(得分:1)

你也可以使用:

(mt1[,1] + mt1[,2] + mt1[,3])/3

但这可能不如其他答案好,特别是如果适应你需要更多列的情况。