假设我有一个如下所示的有序数据框:
df <- data.frame(customer = c('cust1','cust1','cust2','cust3','cust3'),
start_month = as.Date(c('2016-03-01','2017-08-01','2016-03-01','2017-07-01','2017-10-01')),
price = c(29,29,59,99,59),
end_month = as.Date(c('2017-08-01',NA,'2017-09-01','2017-09-01',NA)));
如何使用以下业务规则在 R 中编写脚本:如果客户在同一个月结束并开始,并且价格没有变化,则删除最新交易。否则,保留交易。生成的数据框如下所示:
new_df <- data.frame( customer = c('cust1','cust2','cust3','cust3'),
start_date = as.Date(c('2016-03-01','2016-03-01','2017-07-01','2017-10-01')),
price = c(29,59,99,59),
end_date = as.Date(c(NA,'2017-09-01','2017-09-01',NA)));
在此示例中,cust1 的 2017-08-01 被忽略并过滤掉,因为价格与他们之前的交易相同。但是由于价格不同,cust3 的交易被保留。
我怎样才能在 R 中做到这一点?