楼主: dxystata
1059 1

[原创博文] 得到新的宏变量 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2012-8-24 10:04:03 |AI写论文
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 ...
关键词:let 如何

沙发
bobguy 发表于 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)<<<;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 01:24