全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2620 4
2008-07-04
各位好!有个关于宏的问题:我做一个一段宏程序,虽然只有两个宏参数,但是这个参数的赋值过程比较麻烦,需要把2×200个值依次赋值给这个sas宏程序,有没有简单方法实现自动赋值呢?最好给个示例,我是新手!谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2008-7-19 16:02:00
同问
二维码

扫码加我 拉你入群

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

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

2008-7-19 19:39:00

一般来说,宏是对全局或局部的,而你这个问题完全可以在数据步解决掉

不需要宏。

二维码

扫码加我 拉你入群

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

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

2008-7-20 00:36:00
再写一个宏,把这个赋值过程嵌套进去。
二维码

扫码加我 拉你入群

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

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

2008-7-22 04:07:00

1. use proc sql to select the values you want put into the macro. These values will appear in the output window.

2. creat a macro variable , say list. Then copy and past the values selected above values after the sign.

    %let list =

3. in the data step, create an array to hold the values of macro.

The following code are what I used. Hope you can modify it for your use.

/* define a macro variable */

%let List = var1 var2 var3 var4 var5 var6 var7 var8 var9 var10

var11 var12 var13 var14 var15 var16 var17 var18 var19 var20 var21 var22 var23 var24

var25 var26 var27 var28 var29 var30;

%put _user_;

data DATA_3;

array d_compont &list; /* to create an array holding the variables */

set data2008;  

nd=0;

do i = 1 to 30;

DD = d_compont(i);

if DD not in (1 2 3 4 5) then nd=nd+1;

end;

run;

[此贴子已经被作者于2008-7-22 4:30:19编辑过]

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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