2013-05-01 54 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提供类似的功能,但在这种情况下,很多快得多。