在保持r中第一行(每n行)的数据的同时n行的平均值

时间:2013-06-18 09:43:05

标签: r


我的数据与此类似:

value    days
  25       1
  24       2
  25       4
  26       5

我想计算值列的每n行的平均值,但要保留每n行的每一行的“天”信息。例如,对于n = 2,新数据将相应地显示:

 value    days
  24.5     1
  25.5     4

当我使用colMeans时,我只获得了值列。

你有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:3)

说你的data.frame被称为df

library(plyr)
n <- 2
ddply(df, .(rep(1:(nrow(df)/n), each=n)), summarise, mean=mean(value), day=days[1])

修改

你还可以为你的df子集()提供更多变量,只需将它们放在.()内,用.(var1, var2, var3)之类的逗号分隔,或者为这些变量命名,{{ 1}}。在您的示例中:

.(newname1=var1, newname2=var2, newname3=var3)