全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1035 1
2012-08-24
悬赏 10 个论坛币 已解决
%let a=x y;
%let b=1 2;
如何产生新的宏变量,值为x1 y1 x2 y2。谢谢!

最佳答案

bobguy 查看完整内容

Assume that you would like it to be done in a macro environment. Here is a function like macro. %let a=x y; %let b=1 2; %macro expmvar(a, b); %let i=1; %do %until(%scan(&a,&i)=%str( )); %let j=1; %do %until(%scan(&b,&j)=%str( )); %scan(&a,&i)%scan(&b,&j) %let j=%eval(&j+1); %end; %let i=%eval(&i+1); %end; %mend; %let newvar=%expmvar(&a, &b); %put >>>&newvar ...
二维码

扫码加我 拉你入群

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

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

全部回复
2012-8-24 10:04:04
Assume that you would like it to be done in a macro environment.  Here is a function like macro.

%let a=x y;
%let b=1 2;

%macro expmvar(a, b);
%let i=1;

%do %until(%scan(&a,&i)=%str( ));

        %let j=1;
        %do %until(%scan(&b,&j)=%str( ));
                %scan(&a,&i)%scan(&b,&j)
                %let j=%eval(&j+1);
         %end;   
        %let i=%eval(&i+1);

%end;
%mend;

%let newvar=%expmvar(&a, &b);
%put >>>&newvar<<<;

%put >>>%expmvar(x y z, 1 2 7 5)<<<;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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