只需尝试找到最有效的方法即可。如果您查看下面的日期列,将发现两个连续的组,其中第一组的最后日期为2018-01-04,总数为4,第二组的最后日期为2018-01-13,其中总数也为4。
我的最终目标是获得最新的组或最近的连续天数。
已编辑:我想要的表格将显示每个不同的帐户ID,以显示最近连续几天的总数。
例如。帐户ID:100012345 total_count_consec_days:400
帐户ID:是唯一的
total_count_consec_days:该帐户ID的最近连续几天。
---日期---
2018-01-01
2018-01-02
2018-01-03
2018-01-04
2018-01-10
2018-01-11
2018-01-12
2018-01-13
我正在处理4000个唯一帐户,每个帐户平均有500个日期。如果没有有效的方法,那么我很乐意接受任何帮助我最终结果的帮助。请帮助!!
谢谢!
答案 0 :(得分:0)
假设数据按label.cell?.truncatesLastVisibleLine = true
和accountid
进行排序,则该组上的简单DOW循环可以发现并输出最近“连续”运行日期的特征。
样本数据
从3年前开始的500个带有数百个日期的帐户是随机输出的。每42个帐户就会强制执行过去长期运行良好的情况。
date
示例代码
对于每个帐户,检测并输出最近“连续”运行日期的功能
data have(keep=accountid date);
do accountid = 1 to 500;
stopdate = .;
do date = today()-1000 to today();
if mod(accountid,42) = 0 then do;
if missing(stopdate) then stopdate = today()-100 * ranuni(123);
if today()-500 < date < stopdate then output;
end;
else
if ranuni(123) > 0.15 and date < today() - accountid/10 then
output;
end;
end;
format date stopdate yymmdd10.;
run;