SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1269|回复: 3
打印 上一主题 下一主题

请教macro里do loop的一个问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-6-19 06:18:22 | 只看该作者

请教macro里do loop的一个问题

我想分别得到data a里有哪些个team出现记录超出0个/5个/10个/12个/15个/20个的summary.
比如超出0个时,所有的team都会出现;
比如超出5个时,d/e就消失了,team总数也就会少2个;
...
下面的code无法运行,问题有2个,一是,stop不能出现在这个code里;二是,do loop少了'to',要求出现do i=  to的结构,但我以前用过do x= 1 3 4 100;end;stop;类似的语句(data step).
请教一下,我的code如何改,谢谢!!!
data a;
input team $ x @@;
cards;
a 1 a 1 a 3 a 4 a 5 a a 2 a 2 a 2 a 4 a 7 a 10 a 30 a 49 a 21 a 1 a 3 a 2
a 2 a 2 a 2 a 4 a 7 a 10 a 30 a 49 a 21 a 37 a 3 a 4 a 0 a 1 a 3 a 12 a 32
a 3 a 2 a 2 a 2 a 4 a 7 a 10 a 30 a 49 a 21 a 37 a3 a 4 a 4 a 11 a 22 a 90
b 1 b 2 b 3 b 4 b 6 b 7 b 3 b 20 b 4 b 58 b 3 b 9 b 3 b 2 b 2 b 2 b 3 b 5 b 6
b 2 b 1 b 2 b 3 b 4 b 6 b 7 b 3 b 20 b 4 b 58 b 3 b 9 b 3 b 2 b 2 b 2 b 3 b 5 b 6
c 10 c 1 c 4 c 21 c 5 c 7  
d 20
e 1 e 3
f 200 f 1 f 4 f 6 f 7 f 2...
.
.
.
;
run;
%macro count;
%do i=0 5 10 12 15 20;
proc sql;
creeate table a_&i. as   select distinct  count(distinct team) as count
     from (select *,count(*) as cnt from a   group by team having cnt>=&i.)
;
quit;
%end;
%stop;
%mend;
%count
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-6-20 10:02:02 | 只看该作者

Re: 请教macro里do loop的一个问题

1.没见过%stop的语句
2.do loop的语句,你是说在用到point的时候用的stop吧?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-6-20 12:23:16 | 只看该作者

Re: 请教macro里do loop的一个问题

是的,stop应该去掉.
但%do 语句改如何改呢? 很显然这里不能用do ... to..格式.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-6-20 13:18:47 | 只看该作者

Re: 请教macro里do loop的一个问题

一般不写成do i=1 3 5这样
而是写成
%let var=%str(0 5 10 12 15 20);
%let i=1;
%do %while(%scan(&var,&i,%str( )) ne ) ;
%put i=%scan(&var,&i,%str( ));
%let i=%eval(&i+1);
%end;
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 05:19 , Processed in 0.069416 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表