2013-05-01 63 views
0

我有一個包含13個變量的相當大的數據幀。這是第一個行只給一個想法:在特定條件下獲取數據幀的最大值()

prov_code nuts1 nuts1name nuts2 nuts2name prov_geoorder prov_name NUTS_ID EDAD year ORDER graphs value   prov_geo 
1. 15  1  NW  11 Galicia  1   La Corunna ES111 11 1975 1 1  0.000000000 La Corunna 

我想根據變量yearORDERprov_code組合,以獲得最大的一組特定的變量(即f_all是我data.frame :f_all[(f_all$year==1975)&(f_all$ORDER==1)&(f_all$prov_code=="1"),])。目標是重複操作以獲得包含每個year,ORDER,prov_code的所有最大值的新數據幀。 有沒有簡單快捷的方法來做到這一點?

感謝對此事發表任何意見,

+1

'聚合值(值〜年+ ORDER + prov_code,f_all,FUN = max)' – James 2013-05-01 09:03:20

回答

1

有這樣幾種方式,例如一個@詹姆斯提到。我想用plyr建議:

library(ply) 
ddply(f_all, .(year, ORDER, prov_code), summarise, mx_value = max(value)) 

或者,如果你有大量的數據,data.table提供類似的功能,但在這種情況下,很多快得多。

相關問題