@@如何在输入声明中工作?

时间:2016-03-20 09:03:38

标签: sas

我想了解sas如何阅读此代码。

         data scores;
    input Grade : $1. @@;
     check='abcdf';
   if verify(grade,check)>0 then 
  put @1 'INVALID ' grade=;
   datalines;
 a b c b c d f a a q a b d d b z
     ;
     run;

日志给出以下结果:

    INVALID Grade=q
    INVALID Grade=z

有人能告诉我SAS如何读取数据以及@@代表什么?是对每个字段的观察 - 每个“等级=”的等级读数?

1 个答案:

答案 0 :(得分:0)

data scores;
    input Grade : $1.;

只会读取每行的第一个字符。这是因为,在每次执行input语句后,即使当前行还有很多内容,文件中的新行也会被读入输入缓冲区。

使用Grade : $1. @@;,指示SAS不要读取另一行,除非处理当前行上的所有数据。