YueweiLiu 发表于 2012-8-27 20:33
前几天就看到了你这个帖子,其实是不太清楚你想问什么,最好你能给点儿具体的例子。
恩恩 嘿嘿 我是说我现在的数据处理需要每次处理n行,这n行数据的处理我就用了好几个proc 和data程序段了(就是我下面的这些程序),处理完一次我还想要i++,处理下一个n行数据,直到所有short2数据及的数据处理完为止,请问,我这个循环该怎么加呢?
PROC IMPORT OUT= WORK.short2
DATAFILE= "E:\SAS 9.1.3Data\080401.xls"
DBMS=EXCEL REPLACE;
sheet="CR";
GETNAMES=YES;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
run;
data short2;
/*选取的观测值,循环时,firstobs=t obs=t+1,t取值1到95*/
proc sql;
create table pq11 as
select * from short2(firstobs=1 obs=2);
quit;
run;
/*转置*/
proc transpose data=want out=pq1 name=var prefix=d;
run;
/*形成期升序排序*/
proc sort data=pq1;
by d1;
run;
proc print data=pq1 label noobs;/*boobs不显示obs*/
run;
/*创建赢者组合和输者组合 */
proc sql;
select avg(d2)as looser from pq1(firstobs=1 obs=10) ;
select avg(d2) as winner from pq1(firstobs=87 obs=96);
run;
/*记录每一次的赢者与输者的差额*/
data score ;
array ACR(*) acr1-acr96 (1,2,3,4,5);/*可以设一个数组记录每一期的return*/
acr(t)=winner-looser;/*无法调用!还没有完成!!!*/
run;