Ошибка чтения фиксированных форматов в SAS

Вот несколько строк данных.

q  2016 55 59  580067.12 89453.03 74579.31 63005.34 54211.66
q  2016 60 64  826983.94119020.88 99145.49 85347.23 75223.34
q  2016 65 69 1080400.00139847.91116260.10103226.14 93063.24 
q  2016 70 74 1086917.25120158.78100291.15 91782.05 85081.34

Я сохранил это в файле с именем "junk.txt". Следующие биты кода SAS ведут себя по-разному в этих строках.

filename junk "junk.txt";

data temp;
   infile junk ;
   input 
   @1 TYPE $ 2.  
   @4 year 4.
   @9 age1 2.
   @12 age2 2.
   @15 foo 10.2 
   @25 bar 9.2 
   @34 YSD1-YSD3 9.2;   
run;

proc print;

data temp;
   infile junk ;
   input 
   @1 TYPE $ 2.  
   @4 year 4.
   @9 age1 2.
   @12 age2 2.
   @15 foo 10.2 
   @25 bar 9.2 
   @34 YSD1 9.2
   @43 YSD2 9.2
   @52 YSD3 9.2;   
run;

proc print;

Я получаю ошибочное чтение из первого ввода и правильное чтение со второго ввода. Пытаюсь выяснить, что происходит. На самом деле у меня намного больше переменных, чем 3, поэтому мне было бы полезно использовать синтаксис ярлыков.

1 ответ

Мой коллега был знаком с синтаксисом, с которым я не был знаком. Поведение следующего такое же, как поведение моего второго метода.

filename junk "junk.txt";

data temp;
   infile junk ;
   input 
   @1 TYPE $ 2.  
   @4 year 4.
   @9 age1 2.
   @12 age2 2.
   @15 foo 10.2 
   @25 bar 9.2 
   @34 (YSD1-YSD3) (9.2);   
run;

proc print;
Другие вопросы по тегам