根据数据的日期/时间创建列

时间:2021-05-17 11:47:27

标签: r date datetime

我有同一天的多个销售数据,我想为第一次销售的收入创建一个列,并为最后一次销售的收入创建一个列。 (时间日期顺序的第一个和最后一个)。

以下是我当前和预期的输出:

   > df
       ID       Date Revenue
    1 113 23/04/2018      51
    2 113 24/04/2018      87
    3 113 25/04/2018      70
    4 112 23/04/2018      99
    5 112 24/04/2018      88
    6 110 23/04/2018      83



> data_desired
   ID       First.Revenue Last.Revenue
1 113             51           70
2 112             99           88
3 110             83           NA

1 个答案:

答案 0 :(得分:0)

你可以这样做:

library(dplyr)

df %>%
  mutate(Date = as.Date(Date, '%d/%m/%Y')) %>%
  arrange(ID, Date) %>%
  group_by(ID) %>%
  summarise(First.Revenue = first(Revenue), 
            Last.Revenue = last(Revenue), 
            Last.Revenue = ifelse(First.Revenue == Last.Revenue, NA, Last.Revenue))

#    ID First.Revenue Last.Revenue
#  <int>         <int>        <int>
#1   110            83           NA
#2   112            99           88
#3   113            51           70