說我有數據幀平均
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
我可以得到的每個子集的均值和使用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,那麼子集ay,az和bz的平均值不會改變,因爲它們只有總共兩個條目(因此頂部x條目是子集的整個數據集)。然而,通過有三個條目,所以我們希望回到最高的兩個值(2,3),以便輸出表看起來像
A B value
a y 1.5
b y 2.5
a z 2.5
b z 2.0
簡單而整潔,加上'tail()'用法,儘管'將sort ='遞減爲'TRUE'將允許使用'head()',這可能會清晰地表示代碼的意圖(或者可以使用' 1:2]') –