大家好!请教大家一个问题:我在拆分数据集的时候,如果写%let k=1,DATA步是能够正确运行的,但是放到宏里面,就不可以了。请大家帮我看看问题在什么地方。
程序如下:
%macro split;
%do k=1 %to 20;
data h;
set dst;
if _n_=&k.;
rename date=d;
run;
%end;
%mend;
%split;
日志是这样写的:
NOTE: 由调用宏“SPLIT”生成行。
3 data h; set dst;
---
180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3 if _n_=&k.;
--
180
ERROR 180-322: 语句无效或未按正确顺序使用。
NOTE: 由调用宏“SPLIT”生成行。
3 rename date=d;
------
180
ERROR 180-322: 语句无效或未按正确顺序使用。
ERROR: 文件“WORK.H.DATA”不存在。
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.TST 可能不完整。该步停止时,共有 0 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.03 秒
CPU 时间 0.01 秒