我正在尝试将格式应用于数据集中的变量,但是在运行数据步骤后,我仍然只看到原始值(例如-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
语句之后。在这种情况下,你将缺少告知 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*
您似乎想要一种数字格式。希望这对你有帮助
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
;