我有同一天的多个销售数据,我想为第一次销售的收入创建一个列,并为最后一次销售的收入创建一个列。 (时间日期顺序的第一个和最后一个)。
以下是我当前和预期的输出:
> 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
答案 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