Запрос данных SAS со смешанным стилем ввода. Этот код не дает правильного вывода - PullRequest
0 голосов
/ 16 мая 2019
    DATA nationalparks;
    INPUT @1 ParkName $ 1-21  @23 State $ Year @40  Acreage COMMA9.;
    DATALINES;
    Yellowstone           ID/MT/WY 1872 4,065,493
    Everglades            FL       1934 1,398,800
    Yosemite              CA       1864 760,91
    Great Smoky Mountains NC/TN    1926 520,269
    ;
    RUN;

Этот код SAS не показывает правильный набор результатов.

1 Ответ

0 голосов
/ 16 мая 2019

Ваша программа выглядит хорошо для меня, если данные действительно находятся в столбцах, которые использует ваш код.

Убедитесь, что вы не отступили от строк данных. Также убедитесь, что ваш редактор не заменил пробелы символами TAB. Убедитесь, что значения STATE и YEAR всегда имеют значение и что оно не содержит пробелов. Вы можете использовать ., чтобы отметить пропущенные значения, даже для символьной переменной STATE. Вместо этого вы можете прочитать STATE и YEAR, используя столбцы, и тогда пропуски будут считаться отсутствующими. Нет необходимости использовать форматированный ввод для последней переменной, если вы добавите модификатор :, тогда SAS будет использовать режим списка и отрегулировать ширину, используемую в информате, чтобы соответствовать ширине следующего значения в строке. Но опять же, если ACREAGE отсутствует, используйте ., чтобы отметить это. Или добавьте оператор INFILE DATALINES TRUNCOVER; перед оператором INPUT.

DATA nationalparks;
  INPUT ParkName $ 1-21 State $ 23-30 Year 32-35 Acreage :COMMA.;
*---+----10---+----20---+----30---+----40---+----50;
DATALINES;
Yellowstone           ID/MT/WY 1872 4,065,493
Everglades            FL       1934 1,398,800
Yosemite              CA       1864 760,91
Great Smoky Mountains NC/TN    1926 520,269
;

Результаты:

Obs    ParkName                 State       Year    Acreage

 1     Yellowstone              ID/MT/WY    1872    4065493
 2     Everglades               FL          1934    1398800
 3     Yosemite                 CA          1864      76091
 4     Great Smoky Mountains    NC/TN       1926     520269
...