R:汇总前 30 天的数据

R: Aggregating Data for Previous 30 Days

作为新手,我希望了解如何使用任意回顾(例如,从某个日期开始的前 30 天)来汇总数据。以我的数据为例。我想按每个名字分组,然后计算 02-15-2019 之前 30 天的销售额。所以它会回顾 2019 年 2 月 15 日的 30 个日历日,并按姓名给我总销售额(例如,人 1 = 60 美元;人 2 = 30 美元)

 Name      Date          Sales
Person1    01-31-2019    
Person1    02-15-2019    
Person1    06-18-2019    0
Person2    01-31-2019    
Person2    02-15-2019    
Person2    06-18-2019    0

简单示例(如果我正确理解你的问题):

library(dplyr) 
set.seed(123)
df <- data.frame(Name = sample(c("Person1", "Person2"), 6, T),
           Date = c("01-31-2019", "02-15-2019", "06-18-2019", "01-31-2019", "02-15-2019", "06-18-2019"),
           Sales = runif(6, 10, 100), stringsAsFactors = F)

df$Date <- lubridate::mdy(df$Date)

target <- lubridate::mdy("02-15-2019")
sales <- df %>% filter(between(Date, target - 30, target)) %>% 
  group_by(Name) %>% summarise(Sales = sum(Sales))

select Name ,sum(sales) 来自订单 在哪里 DATEDIFF(day,OrderDate,GETDATE()) 在 0 到 30 之间 按名称分组