d**********0 发帖数: 222 | 1 sas的文件名以月和天结尾,比如order0401.dat表示是4月1号的数据。现在一共有15个
数据,代表了从4月1号直到4月15号。要combine这些data,需要增添一个时间变量,
order date,等于文件名末的数字再加上年份,形成orderdate=20140401.
因为是通过从文件名中做来设定日期,想用macro做do loop,但没调出来。请大虾帮忙
。 | y****r 发帖数: 2 | 2 proc datasets;delete all;run;quit;
%macro try();
%do i=1 %to 9;
data temp&i;
set order040&i.;
orderdate=2014040&i.;
run;
proc datasets;
append base=all data=temp&i. force;
quit;
%end;
%do j=10 %to 15;
data temp&j;
set order04&j.;
orderdate=201404&j.;
run;
proc datasets;
append base=all data=temp&j. force;
quit;
%end;
%mend;
%try();
【在 d**********0 的大作中提到】 : sas的文件名以月和天结尾,比如order0401.dat表示是4月1号的数据。现在一共有15个 : 数据,代表了从4月1号直到4月15号。要combine这些data,需要增添一个时间变量, : order date,等于文件名末的数字再加上年份,形成orderdate=20140401. : 因为是通过从文件名中做来设定日期,想用macro做do loop,但没调出来。请大虾帮忙 : 。
| d**********0 发帖数: 222 | 3 谢谢yapear。看懂了J的循环,但没明白I的循环。
【在 y****r 的大作中提到】 : proc datasets;delete all;run;quit; : %macro try(); : %do i=1 %to 9; : data temp&i; : set order040&i.; : orderdate=2014040&i.; : run; : proc datasets; : append base=all data=temp&i. force; : quit;
| y****r 发帖数: 2 | 4 i和j的循环结构基本是一样的。i的循环是为了日期格式是01,02,...09。如果日期格
式是1,2,...9。只用一个循环就够了。 |
|