楼主: nanmo
16676 13

求助!如何在data步中将一个变量值赋值给宏变量并引用 [推广有奖]

11
nanmo 发表于 2012-12-6 11:37:03
hcydlee 发表于 2012-12-6 11:34
用%do %to 产生变化的宏变量值,再引用的时候采用&&x&i  &&x&n来引用。参考sas macro programming made e ...
多谢,我试试看

12
novem 发表于 2012-12-6 14:05:53
/*我寫了一個小macro可以達到這個需求,參考一下吧..*/

data test;input XX;
cards;
3
4
5
6
;run;
%let dsid=%sysfunc(open(test,i));
%let tot_obs=%sysfunc(attrn(&dsid,nobs));

%macro TTT ;
%do j=1 %to &tot_obs.;
%global X&j.;
data test1;set test;if _n_=&j.;
call symput("X&j.", XX);
run;
%put &&X&j.;
%end;
%mend;
%TTT ;

%put &X1 &X2 &X3 &X4;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
nanmo + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

13
novem 发表于 2012-12-6 14:08:06
其實就是整理前面回覆同學的答案就可以完成了...

14
nanmo 发表于 2012-12-6 16:56:55
novem 发表于 2012-12-6 14:05
/*我寫了一個小macro可以達到這個需求,參考一下吧..*/

data test;input XX;
多谢!这里用一个循环赋值给宏变量,而我本身的运算对x&i-x&n求个最值就没法在第i步循环实现,这样就需要用两次循环了,觉得效率有点低。

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

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