在R中计算多个列的平均值并生成一个新表

时间:2013-09-10 18:28:47

标签: r

我在.csv中有一个数据集。例如,它包含多个列。

Group Wk1 WK2 WK3 WK4 WK5 WK6 
   A   1   2   3   4   5   6
   B   7   8   9   1   2   3
   C   4   5   6   7   8   9
   D   1   2   3   4   5   6

然后,如果我想要WK1和&的平均值WK2,Wk3,WK4& WK5,WK6。 我怎样才能做到这一点? 结果可能是

Group 1    2    3    4
mean  3.75 5.25 4.5  6

如何将其保存到新表中?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可melt data.frame aggregate,使用一些基本索引创建论坛,并使用library(reshape2) X <- melt(mydf, id.vars="Group") Match <- c(Wk1 = 1, Wk2 = 1, Wk3 = 2, Wk4 = 3, Wk5 = 3, Wk6 = 4) aggregate(value ~ Match[X$variable], X, mean) # Match[X$variable] value # 1 1 3.75 # 2 2 5.25 # 3 3 4.50 # 4 4 6.00

tapply

tapply(X$value, Match[X$variable], mean) # 1 2 3 4 # 3.75 5.25 4.50 6.00 也是一个合适的候选人:

{{1}}