按过去日期(12个月)计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按过去日期(12个月)计算相关的知识,希望对你有一定的参考价值。

我试图按日期汇总/汇总数据。为简单起见,我只需要在以下数据示例中对第4行执行此操作。例如,第4行中的日期是“2014-06-06”(2014年6月),因此我想对过去12个月中所有日期(即2013-06-01和2014年之间)的价格和增值税(按Group_ID)求和-05-31(即第1,2,3,6行的总和)。

 Date       Price    Vat    Group_ID
 2014-01-10   705000  5023.00   A      
 2014-05-11   580000  6786.00   A       
 2014-05-19   333000  1809.84   A    
 2014-06-06   213000  1875.00   A (need result for this row only)     
 2014-06-21   310000  1905.96   B    
 2013-06-30   280000  3227.00   A
 2014-06-22   280000  3227.00   B
 2014-06-16   280000  3227.00   B
 2014-06-15   280000  3227.00   B
 2013-05-18   280000  3227.00   A    

第4行的预期结果是:

Date         S_Price   S_Vat      Group_ID
2014-06-06   1898000  16845.84     A  
答案

您可以使用lubridate和between之间创建具有目标日期的组,然后汇总数据框。这是我的解决方案:

library(tidyverse)
library(lubridate)

df_2 <- df %>%
    mutate(target_date = case_when(
        between(Date,ymd("2013-06-01"),ymd("2014-05-31")) ~"2014-06-06",
        TRUE ~"0"
    )) %>%
    group_by(target_date, Group_ID) %>%
    summarise(S_price = sum(Price),
              S_Vat = sum(Vat)) %>%
    filter(target_date == "2014-06-06")

df_2

以上是关于按过去日期(12个月)计算的主要内容,如果未能解决你的问题,请参考以下文章

python 计算两个日期相差多少个月

DATEDIFF 按创建日期划分范围,利用外部日期按月计算年龄历史

怎么用JS来计算出今天的前2个月的日期

计算6个月内的所有日期,而不是整体

MySQL 获取按月分组的过去 12 个月的数量

sql 查询中 有12个月表 写一个查询从中提取所有日期