Data Census2001;
infile 'indiv-ver2-050824.dat' lrecl=266;
input PROVP 1-2
 AGEP 39-40
  MOB5P 134
 MOB1P 135
 PROV5P 136-137
 PROV1P 138-139;
 run;
 Data Woman_2001_5year;
 set Census2001;
 length agep_CLASS $ 13;
 if MOB5P=5 then migrant=1; else migrant=0;
 if 18<=AGEP<=24 then AGEP_CLASS='entry';
else if 25<=AGEP<=34 then AGEP_CLASS='younger';
else if 35<=AGEP<=44 then AGEP_CLASS='prime-younger';
else if 45<=AGEP<=54 then AGEP_CLASS='prime-older';
else if 55<=AGEP<=64 then AGEP_CALSS='older';
 if 18<=AGEP<=64;
 run;
 proc means data=Woman_2001_5year;
 class migrant;
var AGEP ; 
 run;
 proc means data=Woman_2001_5year;
 class AGEP_CLASS;
var AGEP ; 
 run;
 ***Note: stonetj is right. Use ' ' to assign character values to your new variable AGEP_CLASS. Use the maximum length for your AGEP_CLASS, length AGEP_CLASS $13;
 One more thing, if you want to calculate the mean of AGEP, use class statement instead of by statement. If you want to use by statement, you have to sort your data by migrant first before you are using proc means.;
 
 [此贴子已经被作者于2007-4-24 5:28:06编辑过]