我的数据看起来类似于:
value days
25 1
24 2
25 4
26 5
我想计算 value 列的每 n 行的平均值,但要保留每一行、每 n 行的“天”信息。例如,对于 n=2,新数据将相应地显示:
value days
24.5 1
25.5 4
当我使用 colMeans 时,我只得到 value 列。
你有什么建议吗?
谢谢。
我的数据看起来类似于:
value days
25 1
24 2
25 4
26 5
我想计算 value 列的每 n 行的平均值,但要保留每一行、每 n 行的“天”信息。例如,对于 n=2,新数据将相应地显示:
value days
24.5 1
25.5 4
当我使用 colMeans 时,我只得到 value 列。
你有什么建议吗?
谢谢。
说你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)
或者,为这些变量命名, .(newname1=var1, newname2=var2, newname3=var3)
. 在您的示例中:
> ddply(df, .(groupID=rep(1:(nrow(df)/n), each=n)), summarise, mean=mean(value), day=days[1])
groupID mean day
1 1 24.5 1
2 2 25.5 4