データフレームがあるとしましょう
df <- data.frame('A' = c('a','a','a','a','b','b','b','b','b'),
'B' = c('y','y','z','z','y','y','y','z','z'),
'value'=c(1 , 2 , 2 , 3 , 2 , 3 , 1 , 2 , 2))
だからこのように見えた
A B value
a y 1
a y 2
a z 2
a z 3
b y 2
b y 3
b y 1
b z 2
b z 2
クエリを使用して、A と B の各サブセットの平均を取得できました
with(df, aggregate(df, by = list(A, B), FUN = mean))
少し操作した後、
A B value
a y 1.5
b y 2.0
a z 2.5
b z 2.0
これを行う方法はありますが、各サブセットの最大 x 値の平均のみを計算します。したがって、この例で x を 2 とすると、合計 2 つのエントリしかないサブセット ay、az、および bz の平均は変化しません (したがって、上位の x エントリはサブセットのデータセット全体です)。ただし、by には 3 つのエントリがあるため、出力テーブルが次のようになるように、最も高い 2 つの値 (2 と 3) の平均を返す必要があります。
A B value
a y 1.5
b y 2.5
a z 2.5
b z 2.0