全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件
1669 4
2021-02-01
SAS宏的循环结构 下面的SAS语句有问题吗 日志里显示的error看不懂TT 求大神指教 %macro create(name,number); %do n=1 %to &number; &name.n %end; %mend create; data %create(abc,3); input a@@; if a=1 then output abc1; else if a=2 then output abc2; else if a=3 then output abc3; cards; 123 ; proc print data=abc1; run; proc print data=abc2; run; proc print data=abc3; run; 日志里: 1 %macro create(name,number); 2 %do n=1 %to &number; 3 &name.n 4 %end; 5 %mend create; 6 data %create(abc,3); 7 input a@@; 8 if a=1 then output abc1; ---- 455 9 else if a=2 then output abc2; ---- 455 10 else if a=3 then output abc3; ---- 455 ERROR 455-185: 在 DATA 语句中未指定数据集。 11 cards; ERROR: 已打开数据集 WORK.ABCN 用于输出。 NOTE: SAS 系统由于错误而停止了该步的处理。 WARNING: 数据集 WORK.ABCN 可能不完整。该步停止时,共有 0 个观测和 1 个变量。 NOTE: “DATA 语句”所用时间(总处理时间): 实际时间 0.02 秒 CPU 时间 0.01 秒 13 ; 14 proc print data=abc1; ERROR: 文件“WORK.ABC1.DATA”不存在。 15 run; NOTE: SAS 系统由于错误而停止了该步的处理。 NOTE: “PROCEDURE PRINT”所用时间(总处理时间): 实际时间 0.06 秒 CPU 时间 0.03 秒 16 proc print data=abc2; ERROR: 文件“WORK.ABC2.DATA”不存在。 17 run; NOTE: SAS 系统由于错误而停止了该步的处理。 NOTE: “PROCEDURE PRINT”所用时间(总处理时间): 实际时间 0.01 秒 CPU 时间 0.01 秒 18 proc print data=abc3; ERROR: 文件“WORK.ABC3.DATA”不存在。 19 run; NOTE: SAS 系统由于错误而停止了该步的处理。 NOTE: “PROCEDURE PRINT”所用时间(总处理时间): 实际时间 0.01 秒 CPU 时间 0.01 秒
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-2-1 23:01:34

&name.n 错了, 应该是 &name.&n.

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-2-1 23:02:40

非常感谢啊!程序没有问题了 不过还是想问问 循环里的n变量算是宏变量吗?所以引用的时候需要用&n?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-2-1 23:03:52

n是宏变量, 必须加&引用

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-2-1 23:04:42
非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群