Proc Format / proc制表错误

时间:2016-02-11 17:44:24

标签: sas

我正在运行以下代码:

ods listing close;
ods pdf file = "D:\work.pdf";

proc format;
value MS 1 = "Married - Spouse Present"
        2 = "Married - Spouse Absent"
        3 = "Widowed"
        4 = "Divorced"
        5 = "Seperated"
        6 = "Never Married";

value Sex 1 = "Male"
        2 = "Female";

value Race 1 = "White"
        2 = "Black"
        4 = "Asian";

value Hispanic 1 = "Hispanic";

value Age (multilabel);

  16 - 19 = "16 to 19 years"
  20 - 24 = "20 to 24 years"
  25 - 54 = "25 to 54 years"  
  55 - 64 = "55 to 64 years"
  16 - 85 = "Total, 16 years and over"
  20 - 85 = "20 years and over"
  25 - 85 = "25 years and over"
  55 - 85 = "55 years and over"
  65 - 85 = "65 years and over"
  ;
quit;

proc tabulate data = Final;
format age age.;
class Age/mlf;
class Race Hispanic_NonHispanic Marital_Status Full_Part_Time_Status Sex Year;
var Multi_Job;
table Age Race Hispanic_nonhispanic Marital_Status Full_Part_Time_Status, Sex*year*Multi_Job All / printmiss;
format Race Race. Hispanic_nonHispanic Hispanic. Marital_Status MS. Sex  Sex.;
run;
ods pdf close;
ods listing;

但是我收到以下错误消息:

ods listing close;
481  ods pdf file = "D:\work.pdf";
NOTE: Writing ODS PDF output to DISK destination "D:\work.pdf", printer  "PDF".
482
483  proc format;
484     value MS 1 = "Married - Spouse Present"
485              2 = "Married - Spouse Absent"
486              3 = "Widowed"
487              4 = "Divorced"
488              5 = "Seperated"
489              6 = "Never Married";
NOTE: Format MS has been output.
490
491    value Sex 1 = "Male"
492              2 = "Female";
NOTE: Format SEX has been output.
493
494   value Race 1 = "White"
495              2 = "Black"
496              4 = "Asian";
NOTE: Format RACE has been output.
497
498   value Hispanic 1 = "Hispanic";
NOTE: Format HISPANIC has been output.
499
500   value Age (multilabel);
NOTE: Format AGE has been output.
501
502    16 - 19 = "16 to 19 years"
  ............so on 

ERROR:  Write Access Violation In Task ( TABULATE )
Exception occurred at (679B8D96)
Task Traceback
Address   Frame     (DBGHELP API Version 4.0 rev 5)
679B8D96  053BF9EC  0001:00057D96 sasxkern.dll
679A0070  053BFAA8  0001:0003F070 sasxkern.dll
679788B2  053BFB3C  0001:000178B2 sasxkern.dll
66FC6323  053BFB4C  0001:00005323 sassfm01.dll
66FCD034  053BFBC8  0001:0000C034 sassfm01.dll
66FDD32B  053BFC28  0001:0001C32B sassfm01.dll
66FCBDC6  053BFCC8  0001:0000ADC6 sassfm01.dll
66FC386E  053BFCEC  0001:0000286E sassfm01.dll
661217DD  053BFF58  0001:000007DD sastabul.dll
67E223EE  053BFF74  0001:000113EE sashost.dll
67E26DE0  053BFF88  0001:00015DE0 sashost.dll
7638338A  053BFF94  kernel32:BaseThreadInitThunk+0x12
772D9A02  053BFFD4  ntdll:RtlInitializeExceptionChain+0x63
772D99D5  053BFFEC  ntdll:RtlInitializeExceptionChain+0x36

NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 546 observations read from the data set WORK.FINAL.
NOTE: PROCEDURE TABULATE used (Total process time):
   real time           0.02 seconds
  cpu time            0.03 seconds

5 22  ods pdf close;
NOTE: ODS PDF printed no output.
  (This sometimes results from failing to place a RUN statement before the      ODS PDF CLOSE
  statement.)
 523  ods listing;

我做错了什么?我也尝试在prof格式中使用(多标记未分类)年龄,但它仍然无法正常工作。不知道我做错了什么,我会感激一些帮助。

1 个答案:

答案 0 :(得分:3)

您的年龄段格式末尾有一个额外的分号。

level

删除它,你应该没事。