@
в операторе INPUT
используется для перемещения указателя столбца. Итак, @1
перемещается в первый столбец.
Обратите внимание, что все примеры ваших данных имеют отступ в три пробела, поэтому ваша программа не будет работать. Если вы поместите оператор DATALINES (или CARDS), начиная с первого столбца, тогда редактор автоматически переместится в первый столбец, когда вы вставите строки, чтобы начать ввод данных. Программа также будет более понятна читателю, если оператор DATALINES находится в первом столбце.
Обратите внимание, что ваше первое значение слишком длинное для INFORMAT, который вы используете в операторе INPUT. Вы использовали ширину 4 символа, но значение имеет 5 символов, считая десятичную точку.
Кроме того, вы обычно включаете десятичную часть в спецификацию информатики , когда знаете, что необработанные данные преднамеренно NOT предоставили фактический символ периода, чтобы указать границу между этими значениями. и десятое место. Таким образом, если ваше значение необработанных данных было 1121
, то чтение его с 4.2
привело бы к числу 11.21
.
DATA MYDATA1;
INPUT @1 COL1 5. @7 COL2 3.;
ADD_RESULT = COL1 + COL2;
DATALINES;
11.21 5.3
3.11 11
;
PROC PRINT DATA= MYDATA1;
RUN;