使用最大日期基于ID合并多列数据框?

时间:2019-04-15 13:17:33

标签: r

我有如下数据框。

ID     OrDATE     ExDATE          INVOICE  SHIPPED RECEIVE
1      2015-11-26 2015-11-26      20       0       0
1      2016-10-28 2016-11-14      20       0       0
2      2015-11-26 2015-11-26      20       0       0
2      2016-10-26 2016-11-14      20       0       0
3      2015-11-26 2015-11-26      30       0       0
3      2016-10-26 2016-11-14      20       0       0

我想通过使用OrDate列中的最新日期来根据其ID合并此数据框,但是,不应累积INVOICE,SHIPPED或RECEIVE。

ID     OrDATE     ExDATE          INVOICE  SHIPPED RECEIVE
1      2016-10-28 2016-11-14      20       0       0
2      2016-10-26 2016-11-14      20       0       0
3      2016-10-26 2016-11-14      20       0       0

1 个答案:

答案 0 :(得分:0)

我们可以按'ID'和slice分组'OrDATE'中具有max日期的行

library(dplyr)
df1 %>% 
   group_by(ID) %>% 
   slice(which.max(OrDATE))
# A tibble: 3 x 6
# Groups:   ID [3]
#     ID OrDATE     ExDATE     INVOICE SHIPPED RECEIVE
#  <int> <date>     <chr>        <int>   <int>   <int>
#1     1 2016-10-28 2016-11-14      20       0       0
#2     2 2016-10-26 2016-11-14      20       0       0
#3     3 2016-10-26 2016-11-14      20       0       0