这是绝对位置的用法之一:@(expression),相同功能的是相对位置的用法:+(expression)
使用这两种column pointer control时:
When a column pointer control tries to move the pointer to a position before the beginning of the record, the pointer is positioned in column 1. For example, this INPUT statement specifies that the pointer is located in column -2 after the first value is read:
当(expression)计算为缺失或者负值(本例中A为缺失,所以A-7也是缺失),@(expression)就将指针指向第一列,也就是数据行的开头位置,不过需要注意的是expression不能直接写成.或者负值,但是允许计算值为负值或缺失
- data test;
- input x1 x2 x3 x4 @(A-1) X5 X6 X7 X8 X9;
- /*x1=1 x2=2 x3=3 x4=4 A=. X5=1 X6=2 X7=3 X8=4 X9=5 _ERROR_=0 _N_=1*/
- cards;
- 1 2 3 4 5 6
- ;
- run;
- data test2;
- b=.;
- input x @(.) y;
- /*ERROR: 为 '@' INPUT/PUT 语句选项指定的值必须在 1<=N<=2147483647 范围内*/
- cards;
- 1
- ;
- run;
复制代码