全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1082 1
2016-09-24

%macro m1(stock = );
data wk1;
     if &stock < 999    then s = trim("000"||"&stock");
else if &stock < 9999   then s = trim("00"||"&stock");
else if &stock < 99999  then s = trim("0"||"&stock");
else                          s = trim(" "||"&stock");
run;
data wk2;
set wk1;
call symput('z',s,'G');
run;
%mend m1;
%m1(stock = 875) %put &z;

不知到问题出在哪里,请高手指教,谢谢。

二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-25 13:58:10
1. call symput('z',s);  把 ‘G’ 去掉吧,
2. 宏变量是 在宏体内定义的,作用域 属于宏内,你在宏外  调用是识别不了的。 %put &z.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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