每月汇总的总和,直到变量发生变化

时间:2017-07-11 10:17:37

标签: r sum aggregate

我在处理发票。我想计算每个月可申请的资金池(发票到期日后的金额)。关键是发票可以取消和支付。因此,我想逐月汇总发票的价值,只考虑到期日到期后的一个月的发票,直到付款或取消的月份,包括该月。

这是我的矩阵

的一个例子
   Client.Code.     Invoice  Expiration.Date    Amount Payment.date Out.Of.Process
1:      1004773 21506000409      2016-09-28   6993.80         <NA>        Current
2:      1004773 21506000670      2016-08-29  30034.62         <NA>        Current
3:      1004773 21507000583      2017-10-29   3872.00         <NA>        Current
4:      1005109 21601000237      2016-04-30   3594.31         <NA>        Current
5:      1005109 21606000480      2016-08-29   6301.68         <NA>        Current
6:      1004737 20170500125      2016-07-24 142818.72   2017-06-19           Paid

例如,代码应计算每个聚合中9月份的第一个,并且应计算每个聚合中从7月16日到6月17日的数字6。从5月16日(第二天)算起,每个月的数字4会更好。

有一种方法可以实现我每月要求的发票金额的总和吗?

1 个答案:

答案 0 :(得分:0)

这是一个按月汇总金额的解决方案。我不知道它是不是你想要的,但我希望它能接近它。

library(dplyr)
library(lubridate) # to floor_date function
your_df %>% mutate(exp_date = as.Date(expiration.Date), #you might not need this if you expiration date is in Date format
monthly_date = floor_date(exp_date, "month")) %>%
select(Amount,monthly_date) %>%
group_by(monthly_date) %>%
summarise(aggregate_amt = sum(Amount))