楼主: 邻家小牛
1334 2

[问答] 懂SAS宏编程的高手请进,求解惑。 [推广有奖]

  • 0关注
  • 0粉丝

高中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
147 点
帖子
11
精华
0
在线时间
51 小时
注册时间
2012-7-24
最后登录
2018-12-3

楼主
邻家小牛 发表于 2012-9-20 10:33:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我编辑了一段宏循环:(中间代码省略了)
%macro mypaid(time=,data1=,data2=);
。。。。。。
%mend;                                                                                                                                                                                                                                                   
  %mypaid(time="2010Q4",data1=ht.wj_10Q4,data2=ht.yj_10Q4) ;

日期是从 07Q1 到10Q4的季度时点,,相应的宏可能调用调用数据集我也生成了。。。
我现在跑一次会生成一个我要的结果,但是下次就又要 修改一次%mypad 时间点的参数,次数太多太麻烦

请高手如何用一个循环解决  我一次次重复 修改 参数的问题?
我想到的方法是把需要修改的的参数做成一个专门的数据集,比如
data a;
input  time $  wj $  yj $ ;cards;
10Q4  ht.wj_10Q4  ht.yj_10Q4  
10Q3  ht.wj_10Q3  ht.yj_10Q3  
.......
07Q1  ht.wj_07Q1  ht.yj_07Q1  
;
run;
然后通过一个循环调用出来放进%mypaid,但是不懂如何用循环调用~
请高手赐教


二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 Input cards Macro Data 编程 编辑

沙发
mutangchun_yu 发表于 2012-9-20 10:42:44
试试另外加一段宏,做个循环,
%macro ab;
%do i=7 %to 10;
data _null_;
call symput("y",put(&i.,z2.));
run;
   %do q=1 %to 4;
   %mypaid(time="&y.Q&q.",data1=ht.wj_&y.q&q.,data2=ht.yj_&y.q&q.) ;
   %end;
%end;
%mend;
%ab;

藤椅
邻家小牛 发表于 2012-9-20 13:48:56
mutangchun_yu 发表于 2012-9-20 10:42
试试另外加一段宏,做个循环,
%macro ab;
%do i=7 %to 10;
多谢。。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 18:04