|
楼主
楼主 |
发表于 2004-4-13 11:27:33
|
只看该作者
请教一个简单的问题,这种循环如何实现。
有一个表,假设内容为
id, age,month,region
121, 18 , 1, A
122, 17 , 1, B
125, 15 , 2, A
150, 30 , 5 , B
.....
想统计这样几个值:对所有ID中有‘21’的记录
1、各region每月的记录数(也就相当于region A ,month(1)=1);
2、以5为一个段,各年龄段每month的记录数(比如说15-19年龄段,month(1)=3);
3、各年龄段、各region每month的记录数(如:15-19,A ,month(1)=1)。结果送入一新表中。
从理论上讲,这个程序不难,但我是新接触SAS,对语法不熟悉。不知道如何实现循环。请哪位大侠指点一下,最好明确一下语法的使用。过了这关,我一定努力学习SAS,回报社会。
我的想法:先求出(3)的结果,利用它再求1和2
我的伪代码:求(3)结果:
for i= 1 to 12
for k=0 to 15 /*age group*/
select count(1) as number ,i as month , k as age_group, 'A' as region
where month=i , int(age/5)=k, region='a',index(id,'21') ne 0;
end for // for k
end for // for i
.....same code to other regions like B C D...
也想用proc freq实现,但不知道这么多条件怎么实现。 |
|