CathyHong 发表于 2015-4-4 03:57 
如果age有缺失的话在mod(age,5)这里会出现bug,比如缺少age=5时则第二个年龄组没有输出
You are right. Here is the updated code.
data a;
set a;
g=floor(age/5);
run;
data b;
set a;
retain sum;
by g;
if first.g then sum=n;
else sum+n;
if last.g;
run;
SAS has many useful procedures. Here is another way to do it with proc format and proc means.
proc format;
value agerange
0='0'
1-5='1-5'
6-10='6-10'
11-15='11-15'
;
run;
proc means data=a sum noprint ;
var n;
by age;
format age agerange.;
output out=c sum=sum;
run;