Sas Proc format变量格式未显示

Sas Proc format变量格式未显示,sas,format,Sas,Format,我试图对数据集中的变量应用格式,但在运行数据步骤后,我仍然只看到原始值(例如-1),而不是格式化值(例如-1=不适用)。下面是最小的可重用代码示例。非常感谢您的帮助 proc format library=PUFLIB; '-1' = '-1 INAPPLICABLE' '1' = '1 YES' '2' = '2 NO' '3' = '3 DOES NOT WORK' ; run; data example_ds; FORMAT ACCDNWRK $ACC

我试图对数据集中的变量应用格式,但在运行数据步骤后,我仍然只看到原始值(例如-1),而不是格式化值(例如-1=不适用)。下面是最小的可重用代码示例。非常感谢您的帮助

  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
;

您似乎需要数字格式。希望这对你有帮助

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
;

请确保查看您的日志

它显示错误就在
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
添加
以指示它是一种格式,然后添加格式名称accwrk_fmt是所需的

proc format library=puflib;
value accwrk_fmt
*rest of your code*

您的代码正在创建数字格式,然后尝试将其附加到字符变量。Tom和Draycut--谢谢!!您在发布的PROC format步骤中遗漏了要定义的格式的名称。实际数据中的变量是数字还是字符?也许您使用类似PROC IMPORT的内容阅读它,它创建了一个数字变量,因为值都看起来像数字。请注意,格式名称不以句点结尾,使用格式时需要句点。它应该与数据步骤中使用的匹配<代码>$ACCDNWRK_FMTReeza-感谢您在这方面的帮助!!谢谢你的帮助@Tom:)