SAS中文论坛

标题: 新手求教一个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;
代码没有考虑周末的情况,不知能否满足你的需求?我也是新手,大家一起加油!




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2