Бизнес-контекст:
Розничная сеть с несколькими магазинами по всей стране запускает купонную кампанию в разные моменты времени во всех магазинах для своих клиентов, и я работаю над тем, какой купон работает лучше, и вычисляя коэффициент отклика длякаждый из купонов.
Я пришел к кадру данных, как показано ниже,
"customerID Couponid CouponExpiryDate RetailstoreID Visitdate campaignresponse
AA1 111 01-10-18 B3B12 01-01-18 1
AA1 111 01-10-18 B3B12 01-02-18 1
AA2 111 01-10-18 B3B51 01-25-18 0
AA3 121 01-25-18 B54D3 01-14-18 1
AA1 111 01-10-18 B3B12 01-11-18 0
AA4 115 01-15-18 B3B12 01-01-18 1
AA3 111 01-25-18 B54D3 01-23-18 1
......
Проблема:
Я использовал простой оператор mutate для вычисления последнего столбца "Campaignresponse"
Предположим, OrderDate =" 12-31-17 "
df<-df%>%mutate(campaignresponse = Visitdate >=OrderDate & (Visitdate <=CouponExpiryDate ))%>%replace_na(list((campaignresponse =0))
Если вы посмотрите на вышеупомянутый фрейм данных, особенно строка №: 2 и строка №: 7, он показывает« 1 »но я хочу, чтобы это было "0".Потому что в моем случае клиент может ответить на купонную кампанию только один раз, и если дата посещения предшествует дате истечения срока, она должна быть 1. Но есть некоторые клиенты, которые посетили магазин дважды или более в течение периода кампании, и мой код вычисляетим нужно ответить на кампанию, и ей присваивается значение «1», но это неправильно.
В идеале я хочу что-то вроде ниже,
customerID Couponid CouponExpiryDate RetailstoreID Visitdate campaignresponse
AA1 111 01-10-18 B3B12 01-01-18 1
AA1 111 01-10-18 B3B12 01-02-18 0
AA2 111 01-10-18 B3B51 01-25-18 0
AA3 121 01-25-18 B54D3 01-14-18 1
AA1 111 01-10-18 B3B12 01-11-18 0
AA4 115 01-15-18 B3B12 01-01-18 1
AA3 121 01-25-18 B54D3 01-23-18 0
......
Может кто-нибудь помочь мне с этим?
Заранее спасибо