首页 > 解决方案 > 如何通过分组r在多列中找到最大值并返回值和最大值的数据

问题描述

我有一个名为“Ak_total”的 df,带有 3819 个 obj 和 93 个变量。我想按组(Ak_total$Year)从 6:93 计算每列的最大值。

问题是我不仅想获得每年每列的最大值(这很简单),而且还想找到最大值出现时的日期/日期(Ak_total$Date)。

例子:

Year    Date    BetulaMAX
1998    1998-05-26  42
1999    1999-06-07  32
2000    2000-06-04  173
2001    2001-06-03  113
2002    2002-06-05  65

Year    Date    GrassMax
1998    1998-08-27  260
1999    1999-08-19  215
2000    2000-08-02  173
2001    2001-08-23  76
2002    2002-08-22  193

我做了

max value (Peak DATE)

max_all <- function(x) if(length(x))x==max(x)

Ak_max_date_Betula <- subset(Ak_total,!!ave(Betula, Year, FUN=max_all))

但是我只得到了一列(Betula)的最大值和数据。

是否有可能一次性对所有列执行此操作?

标签: rdategroup-bymaxmultiple-columns

解决方案


推荐阅读