如何分配每组';s的第一个值为";1“;“和休息”;0“;in-R数据帧

如何分配每组';s的第一个值为";1“;“和休息”;0“;in-R数据帧,r,R,业务背景: 一家零售连锁店在全国拥有多家分店,在不同的时间点向所有分店的客户发起优惠券活动,我正在研究优惠券的性能 更好地计算每个优惠券的响应率 我已经到达了如下的数据帧 "customerID Couponid CouponExpiryDate RetailstoreID Visitdate campaignresponse AA1 111 01-10-18 B3B12 01-01-18 1 AA1

业务背景:

一家零售连锁店在全国拥有多家分店,在不同的时间点向所有分店的客户发起优惠券活动,我正在研究优惠券的性能 更好地计算每个优惠券的响应率

我已经到达了如下的数据帧

"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
......     
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
...... 
问题:

我使用了一个简单的mutate语句来计算最后一列“活动响应”

假设OrderDate=“12-31-17”

有人能帮我吗

提前感谢

df%group\u by(customerID,Couponid)%%
df<-df %>% group_by(customerID, Couponid) %>% 
 dplyr::mutate(campaignresponse = as.integer(Visitdate >=OrderDate & (Visitdate <=CouponExpiryDate ) & row_number()==1))

dplyr::mutate(活动响应=as.integer(Visitdate>=OrderDate&(Visitdate,谢谢!!)。我尝试了你的方法。首先我对访问日期进行了排序并使用了你的代码。但是它抛出了这个错误“参数“x”缺失,没有默认值”这通常意味着它使用的是
plyr
的包
mutate
而不是
dplyr
——要么是因为没有加载
dplyr
,要么是因为加载
dplyr
后加载了
plyr
(实际上不应该这样做)。不管怎样,我更新了代码,现在应该可以正常工作了。我使用plyr包使用“rbind.fill”,这在dplyr包中引发了一些错误。但是你的新代码确实有效。太棒了!!!
df<-df %>% group_by(customerID, Couponid) %>% 
 dplyr::mutate(campaignresponse = as.integer(Visitdate >=OrderDate & (Visitdate <=CouponExpiryDate ) & row_number()==1))
# A tibble: 7 x 6
# Groups:   customerID, Couponid [5]
  customerID Couponid CouponExpiryDate RetailstoreID Visitdate  campaignresponse
  <fct>         <int> <date>           <fct>         <date>                <int>
1 AA1             111 2018-01-10       B3B12         2018-01-01                1
2 AA1             111 2018-01-10       B3B12         2018-01-02                0
3 AA2             111 2018-01-10       B3B51         2018-01-25                0
4 AA3             121 2018-01-25       B54D3         2018-01-14                1
5 AA1             111 2018-01-10       B3B12         2018-01-11                0
6 AA4             115 2018-01-15       B3B12         2018-01-01                1
7 AA3             111 2018-01-25       B54D3         2018-01-23                1