【问题标题】:getting the max() of a data frame under certain conditions在特定条件下获取数据帧的 max()
【发布时间】:2013-05-01 17:38:26
【问题描述】:

我有一个包含 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: f_all[(f_all$year==1975)&(f_all$ORDER==1)&(f_all$prov_code=="1"),] )。目标是重复该操作以获得包含每个yearORDERprov_code 的所有最大值的新数据帧。 有没有简单快捷的方法来做到这一点?

感谢您对此事的任何建议,

【问题讨论】:

  • aggregate(value~year+ORDER+prov_code,f_all,FUN=max)

标签: r for-loop max


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 2015-10-14
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多