楼主: caibirdcnb
4106 25

[原创博文] 请问高手如何组合N个宏变量名,谢谢! (还没解决啊) [推广有奖]

11
soporaeternus 发表于 2011-11-1 11:16:24
caibirdcnb 发表于 2011-11-1 10:32
soporaeternus,非常惭愧,我看不懂这个程序。

这个程序似乎只是产生10个宏变量吧?
只看调用X&i的部分,应该就是您需要的
Let them be hard, but never unjust

12
caibirdcnb 发表于 2011-11-1 11:42:29
很惭愧,还是不知道如何实现。

13
caibirdcnb 发表于 2011-11-1 13:51:59
难道我这个貌似简单的问题其实很难?

14
jingju11 发表于 2011-11-2 01:19:50
我感觉,人为的去找这个N在这里没有很大必要,因为mvar 忽略那些不用的macro variables。
所以你可以写出很多的L即可。比如
mvar L1 L2 L3 L4 L5 L6 。。。L50;如果50个够用的话。
京剧

15
456852 发表于 2011-11-2 04:07:19
n未知?n是从另外的程序里得到的?
anyway,我的方法比较简单:直接生成数据用sql.n则从sashelp.vmacro中直接查。

proc sql noprint;select name into:del separated by ' ' from sashelp.vmacro where name like 'T%';quit;
%put &del;
%SYMDEL &del;
%let t1=a;%let t2=b;%let t3=c;
proc sql noprint;select count(*) into:n from sashelp.vmacro where name like 'T%';quit;
%put &n;
data a;
do i=1 to &n;
x="&T"||left(i);
output;
end;
run;
proc sql noprint;select x into:x separated by ' ' from a;quit;
%put &x;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
tj0412ymy + 1 + 1 + 1 Very Useful

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

16
caibirdcnb 发表于 2011-11-2 14:18:14
456852,非常感谢!这2个程序非常有帮助。
请问怎么删除所有的宏变量(包括和不包括系统自动生成的变量)?谢谢!
%symdel()似乎只能删除指定宏变量。

京剧,是的,直接指定多个Ln就可以,只是我是在学习,所以尽量想办法学点,呵呵。

17
kuhasu 发表于 2011-11-2 16:34:53
456852 发表于 2011-11-2 04:07
n未知?n是从另外的程序里得到的?
anyway,我的方法比较简单:直接生成数据用sql.n则从sashelp.vmacro中直 ...
要是有办法通过修改vmacro这样的数据集而不是查询就能赋值宏变量就好了~

18
soporaeternus 发表于 2011-11-2 16:54:08
kuhasu 发表于 2011-11-2 16:34
要是有办法通过修改vmacro这样的数据集而不是查询就能赋值宏变量就好了~
这个貌似就是因果倒置?
Let them be hard, but never unjust

19
kuhasu 发表于 2011-11-2 17:33:03
soporaeternus 发表于 2011-11-2 16:54
这个貌似就是因果倒置?
我就是想实现这样的功能阿~可是咱们都知道vmacro是查询而已

20
zfpg 发表于 2011-11-7 23:30:57
学习

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

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