luckersss 发表于 2015-3-30 11:27 
你的数据有问题,将第一行删掉,然后将"\t\t\t"替换为“\t0\t0\t",之后运行下面的代码就可以了:
data ...
你试下这个程序 是不是要简单得更多

proc datasets kill nolist;
libname home "E:\大学课程学习资料\专业课\大三课程\SAS\lecture1\";
data t1;
set home.Trd_mnth;
year=substr(Trdmnt,1,4);
month=substr(Trdmnt,6,2);
ymonth=mdy(month,1,year);
format ymonth yymmdd10.;
if year>2000;
if markettype in (1,4,16);
if missing(Mretwd)=0;
if missing(Mretnd)=0;
run;
proc sort data=t1; by stkcd year month;run;
proc expand data=t1 out=t2(drop=time) method=none;
by stkcd ;
convert Mretwd=Mretwd_60/ transform=(reverse movave 60 reverse trimleft 59);
convert Mretnd=Mretnd_60/ transform=(reserve movave 60 reverse trimleft 59);
run;