楼主: winwin2013
923 1

[问答] 请问这里的call symput为什么不能生成宏? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
1348 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1107 点
帖子
78
精华
0
在线时间
98 小时
注册时间
2013-7-7
最后登录
2018-12-29

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

%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;

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

二维码

扫码加我 拉你入群

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

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

关键词:symput call put Stock Macro

沙发
流水不朽 发表于 2016-9-25 13:58:10 |只看作者 |坛友微信交流群
1. call symput('z',s);  把 ‘G’ 去掉吧,
2. 宏变量是 在宏体内定义的,作用域 属于宏内,你在宏外  调用是识别不了的。 %put &z.

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 07:45