1. ホーム
  2. r

[解決済み】data.frameのグループごとの平均値【重複】について

2022-04-13 23:01:06

質問

私の場合は 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

解決方法は?

このような操作は、まさに 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)