|
|
7#

楼主 |
发表于 2010-9-18 02:35:00
|
只看该作者
Re: 找data集的子集
add 'code' values.
[code:3mv1b1wv]data ss;
input code date yymmdd8. sdate yymmdd10. a;
cards;
1 20090101 20090306 0.0234
1 20090227 20090306 0.0216
1 20090228 20090306 0.0216
1 20090301 20090306 0.0216
1 20090302 20090306 0.0216
1 20090303 20090306 0.0216
1 20090304 20090306 0.0216
1 20090305 20090306 0.0216
1 20090306 20090306 0.0216
1 20090307 20090306 0.0216
1 20090308 20090306 0.0216
1 20091231 20090306 0.0873
1 20090501 20090508 0.478
1 20090502 20090508 0.478
1 20090503 20090508 0.478
1 20090504 20090508 0.478
1 20090505 20090508 0.0402
1 20090506 20090508 0.0437
1 20090507 20090508 0.0431
1 20090508 20090508 0.478
1 20090509 20090508 0.478
1 20090510 20090508 0.478
1 20090511 20090508 0.478
1 20091231 20090508 0.093
2 20090101 20090306 0.0234
2 20090227 20090306 0.0216
2 20090228 20090306 0.0216
2 20090301 20090306 0.0216
2 20090302 20090306 0.0216
2 20090303 20090306 0.0216
2 20090304 20090306 0.0216
2 20090305 20090306 0.0216
2 20090306 20090306 0.0216
2 20090307 20090306 0.0216
2 20090308 20090306 0.0216
2 20091231 20090306 0.0873
2 20090501 20090508 0.478
2 20090502 20090508 0.478
2 20090503 20090508 0.478
2 20090504 20090508 0.478
2 20090505 20090508 0.0402
2 20090506 20090508 0.0437
2 20090507 20090508 0.0431
2 20090508 20090508 0.478
2 20090509 20090508 0.478
2 20090510 20090508 0.478
2 20090511 20090508 0.478
2 20091231 20090508 0.093
;
run;
proc sql;
create table ss1 as
select *,sum(date1) as d1,sum(date2) as d2
from (select *,ifn(flag=1,date-5,.) as date1,ifn(flag=1,date+2,.) as date2
from (select *,(date=sdate) as flag from ss))
group by code,sdate
order by code,sdate,date;
quit;
data ss2; set ss1;by code sdate date;retain sf1;
if date=d1 then ff=1;
else if date=d2 then do;sf=1;sf1=1;end;
if sf=1 then sfg=0;
sfg+sf1;
if sfg=2 then ff=1;
ffg1+ff;
format date sdate yymmddn8.;
run;
proc sql;
create table ss3(keep=code date sdate a flag)as
select *,sum(sf=1) as sfg2
from ss2
group by ffg1
having sfg2=1
order by code,sdate,date;
quit;[/code:3mv1b1wv] |
|