Получение даты начала и окончания из одного столбца данных - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь найти дату начала и окончания периода продаж продукта из столбца данных, который является фиктивной переменной для продажи.Вот прокси типа данных, с которыми я работаю: enter image description here

Результат, который я ищу:

enter image description here

Фактический набор данных, над которым я работаю, гораздо больше, чем этот, и не обязательно рассматривает его только с 2010-01 по 2011-12 гг.

Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2019

Это предполагает только одну продажу за продукт

require(tidyverse)

df <- data.frame(product = 'Product A', 
                 month = seq(as.Date('2010-01-01'),
                             as.Date('2010-10-01'),
                             by = 'month'
                             ),
                 onSale = c(rep(0,3), rep(1,4),rep(0,3))
                 )


df %>% 
  group_by(product) %>% 
  summarise(saleStart = month[which.min(month[onSale == 1])],
            salend    = month[which.max(month[onSale == 1])]
            )

Редактировать:

df <- data.frame(product = 'Product A', 
                 month = seq(as.Date('2010-01-01'),
                             as.Date('2011-09-01'),
                             by = 'month'
                             ),
                 onSale = c(rep(0,3), rep(1,4),rep(0,3), rep(1,4),rep(0,3), rep(1,4))
                 )


df %>% 
  group_by(product) %>% 
  mutate(diff = c(0,diff(onSale))) %>% 
  group_by(product, diff) %>% 
  filter(diff == 1) %>% 
  mutate(monthStart = month, monthEnd = month  %m+% months(1)) %>% 
  select(-month,-diff)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...