input department $ name $ wagecategory $ wagerate;
cards;
bad carol salaried 20000
bad elizabeth salaried 5000
bad linda salaried 7000
bad thomas salaried 9000
bad lynne hourly 230
ddg jason hourly 200
ddg paul salaried 4000
ppd kevin salaried 5500
ppd amber hourly 150
ppd tina salaried 13000
;
data budget;
set salaries;
by department;
if wagecategory='salaried' then yearlywage=wagerate*12;
else if wagecategory='hourly' then yearlywage=wagerate*2000;
if first.department then payroll=0;
payroll+yearlywage;
if last.department;
run;
proc print;
run;
结果如下
Obs department payroll
1 bad 952000
2 ddg 448000
3 ppd 522000
在data budget中的if last.department;语句起什么作用?
是不是与if last.department then output;一样?
前面if语句为什么不写入dataset?