Формат переменной формата Pro c не отображается - PullRequest
2 голосов
/ 12 января 2020

Я пытаюсь применить формат к переменной в наборе данных, но после выполнения шага данных я все еще вижу только необработанные значения (например, -1) вместо отформатированных значений (например, -1 = INAPPLICABLE). пример минимально воспроизводимого кода ниже. Любая помощь очень ценится.

  proc format library=PUFLIB;
  '-1' = '-1 INAPPLICABLE'
  '1' = '1 YES'
  '2' = '2 NO'
  '3' = '3 DOES NOT WORK'
    ;
run;
  data example_ds;
   FORMAT ACCDNWRK $ACCDNWRK_FMT.;
input accdnwrk $;
datalines;
1
2
3
-1
;

Ответы [ 2 ]

2 голосов
/ 12 января 2020

Пожалуйста, проверьте ваш журнал.

Это показывает, что ошибка сразу после вашего заявления PROC FORMAT. В этом случае вам не хватает кода, который говорит вам SAS, если формат informat или format и имя формата.

 70         
 71          proc format library=PUFLIB;
 72           '-1' = '-1 INAPPLICABLE'
              ____
              180
 ERROR 180-322: Statement is not valid or it is used out of proper order.
 73           '1' = '1 YES'
 74           '2' = '2 NO'
 75           '3' = '3 DOES NOT WORK'
 76             ;
 NOTE: The previous statement has been deleted.
 77         run;

 NOTE: PROCEDURE FORMAT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds

Добавление в value, чтобы указать, что это формат, а затем имя формата, accwrk_fmt - это то, что нужно.

proc format library=puflib;
value accwrk_fmt
*rest of your code*
1 голос
/ 12 января 2020

Вы, кажется, хотите формат числительного c. Надеюсь, это поможет вам

proc format;
   value ACCDNWRK_FMT
      -1 = '-1 INAPPLICABLE'
       1  = '1 YES'
       2  = '2 NO'
       3  = '3 DOES NOT WORK'
;
run;

data example_ds;
FORMAT ACCDNWRK ACCDNWRK_FMT.;
input accdnwrk;
datalines;
1
2
3
-1
;
...