在某些条件下获取数据帧的max()

时间:2013-05-01 08:51:41

标签: r for-loop max

我有一个包含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 ORDERprov_code的组合获得某组变量的最大值(即f_all是我的data.frame:{{ 1}})。目标是重复操作以获取包含每个f_all[(f_all$year==1975)&(f_all$ORDER==1)&(f_all$prov_code=="1"),]yearORDER的所有最大值的新数据框。 有一种简单快捷的方法吗?

感谢您就此事提出任何建议,

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,例如@James提到的方法。我想建议使用plyr

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

或者,如果您有大量数据,data.table提供了类似的功能,但在这种情况下速度要快得多。