我有10000个ID,它们都有不同数量的购买日期(最少1个)。每个客户ID,我想找出购买日期之间的天数是否超过183天(即半年)。我只需要一个是或否(二进制)的答案。我现在的代码如下,但它不工作
for (id in 10000){
for (i in length(purchase_date[id])){
for (j in length(purchase_date[id])-1){
if (as.numeric(purchase_date[i]-purchase_date[j])>=183){
above_half_year <- 1
}else{
above_half_year <- 0
}
}
}
}
数据集的顶部如下所示
ID purchase_date
1 1 2014-01-13
2 1 2014-04-14
3 1 2014-08-13
4 1 2014-09-12
5 1 2014-11-12
6 1 2015-02-13
7 1 2017-02-14
8 1 2018-12-13
9 1 2019-04-15
10 2 2016-03-01
11 3 2016-06-13
12 3 2016-09-20
13 3 2016-10-20
14 3 2016-11-21
15 3 2016-12-20
预期输出为
ID purchase_date above_half_year
1 1 2014-01-13 0
2 1 2014-04-14 0
3 1 2014-08-13 0
4 1 2014-09-12 0
5 1 2014-11-12 0
6 1 2015-02-13 0
7 1 2017-02-14 1
8 1 2018-12-13 1
9 1 2019-04-15 0
10 2 2016-03-01 0
11 3 2016-06-13 0
12 3 2016-09-20 0
13 3 2016-10-20 0
14 3 2016-11-21 0
15 3 2016-12-20 0
提前感谢您的帮助!期待您的建议
1条答案
按热度按时间mo49yndu1#
这是一种使用
dplyr
的方法