全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1470 4
2012-04-04
data test;
        X=0;
        Y=1;
        Z=2;
        PRM1='X Y Z';
        do i=1 to 3;
                call symput(scan(PRM1,i),【此处需要根据循环分别得到X Y Z的数值0 1 2】);
        end;
run;

请问高手上面方括号里面应该怎么填才能得到X Y Z这3个宏变量,并且分别赋值0 1 2。非常感谢!
(请不要使用其它方法实现,因为这只是个例子,实际中比较复杂)

二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-5 02:11:05
不知如下是否是LZ想要:

data test1;
   X=0;
    Y=1;
    Z=2;
array a(3) x y z;
PRM1='X Y Z';
do i=1 to 3;
call symput(scan(PRM1,i),a(i));
end;
run;

data test2;
    X=3;
    Y=4;
    Z=5;
array a(3) x y z;
PRM1='X Y Z';
do i=1 to 3;
call symput(scan(PRM1,i),a(i));
end;
run;
二维码

扫码加我 拉你入群

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

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

2012-4-5 02:15:24
run test1  后
%put _user_;

Results:

GLOBAL X            0
GLOBAL Y            1
GLOBAL Z            2
二维码

扫码加我 拉你入群

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

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

2012-4-5 10:39:23
不错,又学习了
二维码

扫码加我 拉你入群

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

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

2012-4-5 18:35:48
学习了,goldbaodi ,非常有用,非常感谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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