Desktop productivity for business analysts and programmers

ERROR 22-322 with %INCLUDE - SAS EM scoring file

Reply
New Contributor
Posts: 2

ERROR 22-322 with %INCLUDE - SAS EM scoring file

I'm having issues when using the macro %INCLUDE. I'm trying to score a dataset using the SAS code generated from SAS EM (decision tree). I can run the code fine for 10 trees, but two of them give me: ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,  a missing value, arrayname, (, +, -, INPUT, NOT, PUT, ^, _NEW_, ~. .

 

Here's my code:

DATA Score; 
		SET TREE.score;
		%INCLUDE "/data/tree1_score.sas";
run;

Here's the log file:

22         GOPTIONS ACCESSIBLE;
23         	* Score data;
24         		
24       !   DATA Score;
25         		SET TREE.score;
26         		     %INCLUDE "/data/tree1_score.sas";
MLOGIC(DMNORMIP):  Beginning execution.
MLOGIC(DMNORMIP):  This macro was compiled from the autocall file /usr/local/sas/SASHome/SASFoundation/9.4/sasautos/dmnormip.sas
MLOGIC(DMNORMIP):  Parameter IN has value _ARBFMT_12
SYMBOLGEN:  Macro variable IN resolves to _ARBFMT_12
MPRINT(DMNORMIP):   call dmnorm(_ARBFMT_12,
MLOGIC(DMNORLEN):  Beginning execution.
MLOGIC(DMNORLEN):  This macro was compiled from the autocall file /usr/local/sas/SASHome/SASFoundation/9.4/sasautos/dmnorlen.sas
MPRINT(DMNORLEN):  32
MLOGIC(DMNORLEN):  Ending execution.
MPRINT(DMNORMIP):  );
MLOGIC(DMNORMIP):  Ending execution.
MLOGIC(DMNORMIP):  Beginning execution.
MLOGIC(DMNORMIP):  This macro was compiled from the autocall file /usr/local/sas/SASHome/SASFoundation/9.4/sasautos/dmnormip.sas
MLOGIC(DMNORMIP):  Parameter IN has value _ARBFMT_12
SYMBOLGEN:  Macro variable IN resolves to _ARBFMT_12
MPRINT(DMNORMIP):   call dmnorm(_ARBFMT_12,
MLOGIC(DMNORLEN):  Beginning execution.
MLOGIC(DMNORLEN):  This macro was compiled from the autocall file /usr/local/sas/SASHome/SASFoundation/9.4/sasautos/dmnorlen.sas
MPRINT(DMNORLEN):  32
MLOGIC(DMNORLEN):  Ending execution.
MPRINT(DMNORMIP):  );
MLOGIC(DMNORMIP):  Ending execution.
1027      +*****************************************************************************************
           __
           22
           76
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, 
              a missing value, arrayname, (, +, -, INPUT, NOT, PUT, ^, _NEW_, ~.  

If I change the file to something else, it works just fine. Only two SAS files are problematic.

 

Grand Advisor
Posts: 10,211

Re: ERROR 22-322 with %INCLUDE - SAS EM scoring file

%include isn't actually macro code, more of a directive.

 

Since you say the issue is with two levels of your process then the issue seems to be with your data. You have not include the details of any of the code actually needed that is from the source or autocall macros so it's going to be hard to make suggestions other than your data may be missing something that is expected.

 

You may need to add options Mprintnest source2 to get more details in the log.

 

Subset your data to one of those cases, look at all of the macros called for required parameters and determine if you can fine one or more of them missing from your data.

Ask a Question
Discussion stats
  • 1 reply
  • 59 views
  • 0 likes
  • 2 in conversation