【发布时间】:2014-06-26 12:46:24
【问题描述】:
我想根据我的数据框中的两个不同分组计算平均值。 一个示例数据集是:
> data
age Year Length
[1,] 3 2004 23.2
[2,] 3 2004 27.6
[3,] 3 2005 25.4
[4,] 3 2005 22.2
[5,] 4 2004 37.6
[6,] 4 2004 31.3
[7,] 4 2005 29.9
[8,] 4 2005 30.1
到目前为止,我已经使用 ddply 函数来计算一个年龄组内的平均值。为此,我创建了一个索引来对所有三年前的数据进行排序,然后找到 Year 中的长度平均值。
logical3=(mydata$Age ==3)
mydata3= mydata[logical3,]
mean_values_3 <- ddply(mydata3, "Year", transform, grp.mean.values=mean(Length))
我想通过计算均值而不是先按年龄排序,从而使这个过程更快、更简洁。
有没有办法 1)基于 1 个以上的组找到平均值 - 这种分组不需要按顺序完成 - 和 2)我怎样才能获得输出到单独数据帧而不附加到的方法工作的那个。
【问题讨论】:
-
试试
aggregate的公式法。见?aggregate。在你的情况下,像result