1

作为一个新手,我希望了解如何使用任意回顾(例如,从某个日期开始的前 30 天)来聚合数据。下面以我的数据为例。我想按每个名称分组,并计算 2019 年 2 月 15 日之前 30 天的销售额。因此,它将从 2019 年 2 月 15 日回溯 30 个日历日,并按名称为我提供总销售额(例如第 1 个人 = 60 美元;第 2 个人 = 30 美元)

 Name      Date          Sales
Person1    01-31-2019    $10
Person1    02-15-2019    $50
Person1    06-18-2019    $100
Person2    01-31-2019    $25
Person2    02-15-2019    $5
Person2    06-18-2019    $200
4

2 回答 2

1

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

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))
于 2019-09-19T21:27:53.607 回答
0

从 DATEDIFF(day,OrderDate,GETDATE()) 介于 0 和 30 之间的订单中选择 Name ,sum(sales) 按名称分组

于 2019-09-19T21:53:48.553 回答