data have;
_obs ++1;
input id dt :date9.;
format dt date9.;
cards;
0 31oct2011
1 31jan2010
1 30apr2010
1 31oct2010
1 31jan2011
1 30apr2011
1 31jul2011
1 31jan2012
2 31jan2010
2 31jan2011
2 30apr2011
2 31oct2011
3 31oct2011
;
问题是:
数据按照季度更新(每三个月的最后一天).数据已经按照ID和DT顺序排列.注意:每三个月的更新叫做连续更新.
要求是:
1.如果某个ID里,有至少一个三个或以上连续更新的数据(比如ID=1,从31OCT2010到31JUL2011的连续4次更新),那取出第一个连续更新的前三个记录(只需要这连续排列的前三个记录)--如ID=1所示;
2.如果三个或以上的连续记录不存在,取第一个有连续两个更新的记录--如ID=2所示.
3.否则,去掉该ID--如ID=0和3所示.
问题的来源是:我们只需要这样的数据来做模型.
另外请不要经常SORT数据.因为我们的实际数据大概是一百万的ID,每个ID的可能更新次数从1到1000.数据包含大概50个变量.
京剧
结果 results:
Obs _obs id dt
1 4 1 31OCT2010
2 5 1 31JAN2011
3 6 1 30APR2011
4 10 2 31JAN2011
5 11 2 30APR2011




雷达卡




京公网安备 11010802022788号







