楼主: 邢不行
5877 9

[原创博文] 问个低级问题..如何在data步中循环调用一个宏 [推广有奖]

院士

5%

还不是VIP/贵宾

-

威望
1
论坛币
26743 个
通用积分
135.2153
学术水平
485 点
热心指数
505 点
信用等级
456 点
经验
44525 点
帖子
547
精华
26
在线时间
1111 小时
注册时间
2010-4-30
最后登录
2024-4-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题是这样的:我有一个编好的宏,叫a(),有参数。
我希望在data步中循环调用这个宏10次,而且每次调用时宏参数都要变,从1变成10。
请问程序应该怎么写啊...
二维码

扫码加我 拉你入群

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

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

关键词:data步 Data 如何 程序 而且

回帖推荐

myc_sas 发表于2楼  查看完整内容

don't know if it is what you want... (&count is the number of loop, for example 10) %macro blabla; data _null_; set xxx.xx end=last; call symput(compress(left(trim('var' !! put(_n_,2.)))),var); if last then do; call symput('count',put(_n_,3.)); end; run; %do i=1 %to &count; % ...

本帖被以下文库推荐

沙发
myc_sas 发表于 2011-3-8 22:55:40 |只看作者 |坛友微信交流群
don't know if it is what you want...

(&count is the number of loop, for example 10)

%macro blabla;
        data _null_;
                 set xxx.xx end=last;
            call symput(compress(left(trim('var' !! put(_n_,2.)))),var);
            if last then do;
                call symput('count',put(_n_,3.));
            end;
        run;
        %do i=1 %to &count;
                %a(&&var&i)
        %end;
%mend blabla;
已有 1 人评分热心指数 收起 理由
论坛数据分析 + 1 观点有启发

总评分: 热心指数 + 1   查看全部评分

使用道具

藤椅
kuhasu 发表于 2011-3-9 03:40:39 |只看作者 |坛友微信交流群
人家问data步~~
%macro huangshiren(fengjie);
%put &fengjie.,这是为什么呢~~~;
%put                          ;
%mend;
data xiaoniao;
format yiren $100. ;
do yiren='亲爱的','五花肉','正太哥','强哥','Honey~','傻瓜','蜜糖','果脯','五毛','美狗','郎教授','如花','年轻人 May the force be with you','招行行长:房价上涨是因为老百姓钱太多了','巴菲特看到我国的物价发展水平也会哭~';
call execute('%huangshiren('||yiren||');');
end;
run;

使用道具

板凳
ntsean 发表于 2011-3-9 05:26:23 |只看作者 |坛友微信交流群
你要把datastep放在macro里面

使用道具

报纸
邢不行 在职认证  发表于 2011-3-9 09:25:20 |只看作者 |坛友微信交流群
我觉得4楼的回答可以用。
没有其他的答案了嘛?
不管去哪里 只要在路上

使用道具

地板
horace_chen 发表于 2011-3-9 11:27:21 |只看作者 |坛友微信交流群
可以试试call execute('%macro');

使用道具

7
myc_sas 发表于 2011-3-9 16:52:13 |只看作者 |坛友微信交流群
谢谢版主鼓励...我个人理解, macro并不是像其他编程语言比如java里面的public function...
所以从data step简单循环调用macro应该很少用到. 俺也是初学, 请高手多指教

使用道具

8
无名浪客 在职认证  发表于 2011-3-9 17:11:42 |只看作者 |坛友微信交流群
  1. %macro a(a);
  2.   b=&a.;
  3.   output;
  4. %mend a;
  5. data test;
  6.   do i=1 to 10;
  7.     %a(i);
  8.   end;
  9. run;
复制代码
已有 1 人评分经验 收起 理由
李会超 + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

使用道具

9
tagman 发表于 2011-3-15 15:43:16 |只看作者 |坛友微信交流群
正在学习SAS,多看看

使用道具

10
raindewRD 在职认证  发表于 2015-11-3 11:30:20 |只看作者 |坛友微信交流群

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 12:46