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