在特定条件下获取数据帧的最大值()
问题描述:
我有一个包含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
我想根据变量year
ORDER
和prov_code
组合,以获得最大的一组特定的变量(即f_all是我data.frame :f_all[(f_all$year==1975)&(f_all$ORDER==1)&(f_all$prov_code=="1"),]
)。目标是重复操作以获得包含每个year
,ORDER
,prov_code
的所有最大值的新数据帧。 有没有简单快捷的方法来做到这一点?
感谢对此事发表任何意见,
答
有这样几种方式,例如一个@詹姆斯提到。我想用plyr
建议:
library(ply)
ddply(f_all, .(year, ORDER, prov_code), summarise, mx_value = max(value))
或者,如果你有大量的数据,data.table
提供类似的功能,但在这种情况下,很多快得多。
'聚合值(值〜年+ ORDER + prov_code,f_all,FUN = max)' – James 2013-05-01 09:03:20