在一个infile 的data步里,出现一些if语句,并且有多个地方有input,但整个步骤中没有output语句,这个时候什么时候才是写一条记录进去呢?
或者帮忙解释一下下面这个program是怎么执行的.谢谢!
data sasuser.billing1 (drop=type);
infile jan98dat;
retain ID Name;
input Type $1. @;
if type='P' then input @3 id $4. @8 name $15.;
if type='C';
input @3 Date mmddyy8. @12 Amount comma6.;
format date mmddyy8. amount dollar7.2;
run;
proc print data=sasuser.billing1;
run;
|
jan98dat的前5条记录是
Raw Data File Jan98dat
| 1---+----10---+----20-- |
| P 1095 SMITH, HOWARD |
| C 01-08-98 $45.0 |
| C 01-17-98 $37.5 |
| P 1096 BARCLAY, NICK |
| C 01-09-98 $156.5 |
这个程序实际运行的结果是
obs id name date amount
1 1096 smith,howard 01/09/98 $45.00
2 1096 smith,howard 01/17/98 $37.50
剩下的记录和这个差不多。 我的疑问是,为什么不是第一个input的时候就output了。这个output的机制到底是怎么样的? 请高手赐教,谢谢!
另外就是最后出现的
if type='C'; 语句是怎么执行的?如果是否是什么情况。