首页 > 解决方案 > 聚合函数后的计算

问题描述

我想用我拥有的数据计算一个度量。

所以,我首先用这个函数计算每个人的平均利润:聚合(利润〜主题ID,AER,平均值)

我想要获得的是单个度量的平均值。这意味着对于每个人,我希望获得每个主题的平均利润的平均值。

在这里,我尝试了一些东西,它给了我按主题划分的利润平均值,但不完全符合我的需要。

aggregate(profit ~ subjectid, AER, mean)

由于我的数据集中有 936 个人,我获得了 936 行输出(每个主题的平均利润)。然后,我想为每一行减去一个数字(假设是任意 4)。然后计算我所有数据集的整体平均值。

aggregate(profit ~ subjectid, AER, mean)

subjectid      profit
1           1  3.2
2           2  0.3
3           3  2.2
4           4  3.0
5           5  3.0
6           6  1.2
...         ...

例如,这 6 行的计算将是:

mean((3.2-4)+(0.3-4)+(2.2-4)+(3-4)+(3-4)+(1.2-4))

因此,最后的预期输出只是一个数字。

标签: rloopsfor-loopaggregate

解决方案


aggregate是适当的功能。从mtcars数据中,如果您想通过气缸数(作为数据集中个体的代理)获取每加仑的平均英里数,您可以使用它。有关此数据集的描述,请参阅?mtcars;它对于提供可重复的示例很有用。

    aggregate(mpg ~ cyl, data=mtcars, FUN=mean)

推荐阅读