R: агрегирование данных за предыдущие 30 дней - PullRequest
0 голосов
/ 20 сентября 2019

Как новичок я надеялся понять, как агрегировать данные, используя произвольный взгляд назад (например, предыдущие 30 дней с даты).Смотрите мои данные ниже в качестве примера.Я хочу сгруппировать по каждому имени и подвести итоги продаж за 30 дней, скажем, 02-15-2019.Таким образом, он вернется на 30 календарных дней с 15 по 15 января 2009 года и даст мне общий объем продаж по имени (например, лицо 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

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

выберите Имя, сумма (продажи) из заказов, где DATEDIFF (день, OrderDate, GETDATE ()) между 0 и 30 группируются по Имени

0 голосов
/ 20 сентября 2019

Простой пример (если я правильно понял ваш вопрос):

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))
...