|
楼主

楼主 |
发表于 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 |
|