标题: 新手求教一个SAS问题 [打印本页] 作者: shiyiming 时间: 2013-8-2 19:34 标题: 新手求教一个SAS问题 表a如下:
date
2012-1-2
2012-1-2
2012-1-2
2012-1-3
2012-1-5
2012-1-5
增加一列n,为距离最后交易日的交易日天数,假设2012-1-5是最后交易日,那么第一行的n是2。谢谢各位大神!!!作者: shiyiming 时间: 2013-8-3 19:39 标题: Re: 新手求教一个SAS问题 用do做循环,从当前观测日期到最后交易日,用weekday判断是否是周末(遇节假日调休等可加入数组判断……),应该就可以实现……作者: shiyiming 时间: 2013-8-8 23:11 标题: Re: 新手求教一个SAS问题 [code:3g18z4f5]data a;
input date yymmdd10.;
format date mmddyy8.;
cards;
2012-1-2
2012-1-12
2012-1-13
2012-1-4
2012-1-5
2012-1-18
;
run;
proc sql;
create table b as
select *,ifn(date^=max(date),intck('weekday',date, max(date)) -1,0) as n
from a;
quit; [/code:3g18z4f5]
NOTE: I did not count holidays.作者: shiyiming 时间: 2013-10-10 12:55 标题: Re: 新手求教一个SAS问题 data ex;
input date yymmdd9.;
cards;
2012-1-7
2012-1-2
2012-1-1
2012-1-6
2012-1-5
2012-1-10
;
run;
proc sort data=ex out=ex1;
by descending date ;
run;
data ex2;
set ex1 ;
do;
if _n_=1 then day=date;
retain day ;
end;
run;
data ex3;
set ex2;
do;
if date<day then n=day-date-1;
else n=0;
end;
drop day;
format date yymmdd10.;
run;
代码没有考虑周末的情况,不知能否满足你的需求?我也是新手,大家一起加油!