完全晕了,到底是operator处理missing,结果是missing,还是sum啊? code 如下:
data work.passengers;
if OrigPassengers=. then
OrigPassengers=100;
TransPassengers=100;
OrigPassengers=.;
NonPaying=10;
TotalPassengers=OrigPassengers + TransPassengers;
run;
title work.passengers='+';
proc print ;
/*
Obs OrigPassengers TransPassengers NonPaying TotalPassengers
1 . 100 10 .
*/
data work.passengers;
if OrigPassengers=. then
OrigPassengers=100;
TransPassengers=100;
OrigPassengers=.;
NonPaying=10;
TotalPassengers=sum(OrigPassengers,TransPassengers);
run;
title work.passengers='sum';
proc print;
/*
Obs OrigPassengers TransPassengers NonPaying TotalPassengers
1 . 100 10 100
*/
Q70:
data orig;
input year adddd;
datalines;
1901 2
1905 1
1910 6
1925 .
1941 1
;
data temp1;
set orig;
totquantity + adddd;
run;
title temp1='+';
proc print;run;
/*
Obs year adddd totquantity
1 1901 2 2
2 1905 1 3
3 1910 6 9
4 1925 . 9
5 1941 1 10
*/
data temp2;
set orig;
retain totquantity 0;
totquantity =sum (totquantity,adddd);
run;
title temp2="sum";
proc print;run;
/*
Obs year adddd totquantity
1 1901 2 2
2 1905 1 3
3 1910 6 9
4 1925 . 9
5 1941 1 10
*/