小编典典

data.frame 中每组的平均值

all

我有一个data.frame,我需要计算每组的平均值(即每Month,下面)。

Name     Month  Rate1     Rate2
Aira       1      12        23
Aira       2      18        73
Aira       3      19        45
Ben        1      53        19
Ben        2      22        87
Ben        3      19        45
Cat        1      22        87
Cat        2      67        43
Cat        3      45        32

我想要的输出如下所示,其中 和 的值Rate1Rate2组的意思。请忽略该值,我已为示例进行了弥补。

Name       Rate1       Rate2
Aira        23.21       12.2
Ben         45.23       43.9
Cat         33.22       32.2

阅读 78

收藏
2022-06-27

共1个答案

小编典典

这种类型的操作正是aggregate为以下目的而设计的:

d <- read.table(text=
'Name     Month  Rate1     Rate2
Aira       1      12        23
Aira       2      18        73
Aira       3      19        45
Ben        1      53        19
Ben        2      22        87
Ben        3      19        45
Cat        1      22        87
Cat        2      67        43
Cat        3      45        32', header=TRUE)

aggregate(d[, 3:4], list(d$Name), mean)

  Group.1    Rate1    Rate2
1    Aira 16.33333 47.00000
2     Ben 31.33333 50.33333
3     Cat 44.66667 54.00000

在这里,我们聚合 data.frame 的第 3 列和第 4 列d,按 分组d$Name,并应用mean函数。


或者,使用公式界面:

aggregate(. ~ Name, d[-2], mean)
2022-06-27