全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5367 20
2012-08-15
复制代码
输出结果为:sn=.,而且提示name2未初始化,本来是想将zhang1以字符串传到宏Test内部,不知道错在哪里?请各位指教!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-8-15 15:14:22
试了一下,下面的可以,不知道什么规则,好像宏只能是常量?
%macro Test(name);
sn=&name;
put sn=;
%mend Test;

data _null_;
Tname='zhang1';
%Test(Tname);
run;
二维码

扫码加我 拉你入群

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

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

2012-8-15 15:25:48
复制代码
二维码

扫码加我 拉你入群

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

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

2012-8-15 15:27:58
sn="&&&name"要改成这样。sn=&name只是把字符串&name赋值给sn,但&name不是有效的字符串。引用宏的话要双引号的,这样就能区别了。
二维码

扫码加我 拉你入群

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

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

2012-8-15 15:28:22
哦,我知道了,谢谢各位!
二维码

扫码加我 拉你入群

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

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

2012-8-15 15:41:32
你那个macro编的不太合理,不知道你要达到什么目的? 以下这样是正确的程序(至少不报错):
    %macro Test(name);
    sn=&name;
    put sn=;
    %mend Test;
    data _null_;
    i=1;
    name1=strip('zhang')||strip(i);
    call symput('name2',name1);;
    %put out of macro is: &name2;
    %Test("&name2");
    run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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