首页 > 解决方案 > 如何在 R 中计算每天的最大值

问题描述

我有以下示例数据集:

count date
1   11/25/16
2   11/29/16
3   11/30/16
4   12/4/16
5   12/7/16
6   12/8/16
7   12/9/16
8   12/10/16
9   12/11/16
10  12/12/16
11  12/13/16
12  12/17/16
13  12/17/16
14  12/18/16
15  12/19/16
16  12/20/16
17  12/20/16
18  12/20/16
19  12/20/16
20  12/20/16
21  12/21/16
22  12/21/16
23  12/21/16
24  12/21/16
25  12/21/16
26  12/22/16
27  12/22/16
28  12/22/16
29  12/22/16
30  12/22/16
31  12/23/16
32  12/23/16
33  12/23/16
34  12/23/16
35  12/23/16
36  12/23/16

我想计算每个日期的最大计数。请注意,最终值在我的真实数据集中并不总是最大的。理想情况下,我的输出不应该有任何重复。

标签: r

解决方案


dplyr这样做的一种方法:

library(dplyr)
library(lubridate)

#Sample data set
set.seed(123)
df <- tibble(x = sample(1:10,20,replace = T),
       y = sample(ymd("2018-01-01") + days(0:5),20,replace = T)) %>%
    arrange(y)


df %>%
    group_by(y) %>%
    dplyr::filter(x == max(x)) %>%
    distinct(x,.keep_all = T) %>%
    ungroup()

结果:

# A tibble: 6 x 2
      x y         
  <int> <date>    
1     5 2018-01-01
2    10 2018-01-02
3     9 2018-01-03
4    10 2018-01-04
5     8 2018-01-05
6    10 2018-01-06

推荐阅读