ID Date flag_14 flag_21
1 1/1/2013 1 1
1 1/16/2013 1 0
1 1/19/2013 0 0
1 1/23/2013 0 1
1 1/26/2013 0 0
2 1/1/2013 1 1
2 1/18/2013 1 0
嗨,我很抱歉这可能是一个愚蠢的问题,但我真的可以使用一些帮助。所以我想创建上面的输出。前 2 列是输入(id 和 date)。逻辑是使用 14 天和 21 天作为截止时间,通过比较当前记录的日期和最后保存的日期来决定记录是否保留在同一 id 内。始终保留每个 id 的第一条记录(标志为 1 表示“保留”,0 表示其他情况)。
例如,对于 id 1,如果截止日期为 21,则第二条记录的日期为 1/16/2013,即前一条记录的 15 天后(即第一条记录 1/1/2013),15<21 所以第二条记录的标志为 0。第三条记录相同,2013 年 1 月 19 日和 2013 年 1 月 1 日相隔 18 天,18<21 所以标志 =0。但是对于第 4 条记录,1/23/2013 和 1/1/2013 相隔 22 天,22>21,所以保留这条记录,flag=1。然后将第 5 条记录与上次保存的记录进行比较(现在是第 4 条记录),1/26/2013 和 1/23/2013 相隔 3 天,3<21,所以 flag =0。
是否有一个简单的使用类似的东西来迭代它partition by
?
谢谢!!