我在处理发票。我想计算每个月可申请的资金池(发票到期日后的金额)。关键是发票可以取消和支付。因此,我想逐月汇总发票的价值,只考虑到期日到期后的一个月的发票,直到付款或取消的月份,包括该月。
这是我的矩阵
的一个例子 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会更好。
有一种方法可以实现我每月要求的发票金额的总和吗?
答案 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))