我有一个data.frame,我需要计算每组的平均值(即每Month,下面)。
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
我想要的输出如下所示,其中 和 的值Rate1是Rate2组的意思。请忽略该值,我已为示例进行了弥补。
Rate1
Rate2
Name Rate1 Rate2 Aira 23.21 12.2 Ben 45.23 43.9 Cat 33.22 32.2
这种类型的操作正是aggregate为以下目的而设计的:
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函数。
d
d$Name
mean
或者,使用公式界面:
aggregate(. ~ Name, d[-2], mean)