1

我在 .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

以及如何将其保存到新表中?

提前致谢。

4

1 回答 1

2

您可以使用一些基本索引创建meltdata.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 
于 2013-09-10T18:35:58.713 回答