我有一个像这样的矩阵:
mt1=matrix(1:144,ncol=12,nrow=12)
而且我只想连续计算3个值的均值。这些是 三个第一个值:
[,1] [,2] [,3]
[1,] 1 13 25
平均值应为13
。
接下来的三个值相同,接下来的三个值相同..依此类推,直到行结束。
我知道我必须使用apply
函数,但是我无法想出将均值仅应用于仅针对一系列行的特定值,然后再应用于下一行序列,并获取然后作为结果,每行只有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
但这可能不如其他答案好,特别是如果适应你需要更多列的情况。