BookmarkSubscribeRSS Feed
emma19901
Calcite | Level 5

Hi, I am trying to run the following macro, but sas is unable to determine the column. How can  I fix this issue?

Thanks..

 


%MACRO catreport(opts,Derivation=, Mutation=);
PROC FREQ DATA = datasets.cats;
    TABLES &Derivation/&opts;
    TITLE "Cat Breeds by &Derivation";
RUN;
PROC PRINT DATA = datasets.cats;
    WHERE &Derivation = "&Mutation";
    TITLE "Cat Breeds with &Derivation = &Mutation";
RUN;
%MEND catreport;
options SYMBOLGEN MPRINT MLOGIC;
%catreport(Derivation=Origin, Mutation=Thailand)
 
---------------------------------
log
 
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
2 TITLE;
3 FOOTNOTE;
4 OPTIONS LOCALE=en_US DFLANG=LOCALE;
5 DATA _NULL_;
6 RUN;
7 OPTIONS VALIDVARNAME=V7;
8 OPTIONS VALIDMEMNAME=COMPAT;
9 FILENAME _HTMLOUT TEMP;
10 FILENAME _RTFOUT TEMP ENCODING='UTF-8';
11 FILENAME _PDFOUT TEMP;
12 FILENAME _GSFNAME TEMP;
13 FILENAME _DATAOUT TEMP;
14 %LET SYSCC=0;
15 %LET _CLIENTAPP='SAS Studio';
16 %LET _CLIENTAPPABREV=Studio;
17 %LET _CLIENTAPPVERSION=3.71;
18 %LET _CLIENTVERSION=3.71;
19 %LET _CLIENTMODE=basic;
20 %LET _SASSERVERNAME=%BQUOTE(localhost);
21 %LET _SASHOSTNAME=%BQUOTE(localhost);
22 %LET _SASPROGRAMFILEHOST=%BQUOTE(localhost);
23 %LET _CLIENTUSERID=%BQUOTE(sasdemo);
24 %LET _CLIENTUSERNAME=%BQUOTE(sasdemo);
25 %LET CLIENTMACHINE=%BQUOTE(10.0.2.2);
26 %LET _CLIENTMACHINE=%BQUOTE(10.0.2.2);
27 %let SASWORKLOCATION="%sysfunc(getoption(work))/";
28 FILENAME _CWD '.';
29 DATA _NULL_;
30 CALL SYMPUT('_SASWORKINGDIR',PATHNAME('_CWD'));
31 RUN;
32 FILENAME _CWD;
33
34 %LET _SASPROGRAMFILE = %NRQUOTE(%NRSTR());
35 %LET _BASEURL = %BQUOTE(http://localhost:10080/SASStudio/);
36 %LET _EXECENV=SASStudio;
37 DATA _NULL_;
38 CALL SYMPUT("GRAPHINIT","");
39 CALL SYMPUT("GRAPHTERM","");
40 RC=TSLVL('SASXGOPT','N');
41 _ERROR_=0;
42 IF (RC^=' ') THEN DO;
43 CALL SYMPUT("GRAPHINIT","GOPTIONS RESET=ALL GSFNAME=_GSFNAME;");
44 CALL SYMPUT("GRAPHTERM","GOPTIONS NOACCESSIBLE;");
45 END;
46 RUN;
47 DATA _NULL_;
48 RC=SYSPROD("PRODNUM002");
49 IF (RC^=1) THEN DO;
50 CALL SYMPUT("GRAPHINIT","");
51 CALL SYMPUT("GRAPHTERM","");
52 END;
53 RUN;
54 %LET _DATAOUT_MIME_TYPE=;
55 %LET _DATAOUT_NAME=;
56 %LET _DATAOUT_TABLE=;
57 %LET _DATAOUT_URL=;
58 %SYMDEL _DATAOUT_MIME_TYPE _DATAOUT_NAME _DATAOUT_URL _DATAOUT_TABLE;
59 %LET _SASWS_ = %BQUOTE(/folders/myfolders);
60 %LET _SASWSTEMP_=%BQUOTE(/folders/myfolders/.sasstudio/.images/635d5dc7-3903-42a7-a99d-5c827d541333);
61 ODS LISTING CLOSE;
62 ODS AUTONAVIGATE OFF;
63 ODS GRAPHICS ON;
64 ODS HTML5 (ID=WEB) DEVICE=PNG GPATH="&_SASWSTEMP_" ENCODING=utf8 FILE=_HTMLOUT (TITLE='Results: Program 1')
64 ! STYLE=Htmlblue OPTIONS(BITMAP_MODE='INLINE' OUTLINE='ON' SVG_MODE='INLINE'
64 ! CSS_PREFIX='.ods_635d5dc7-3903-42a7-a99d-5c827d541333' BODY_ID='div_635d5dc7-3903-42a7-a99d-5c827d541333' );
65 ODS RTF (ID=WEB) STYLE=Rtf FILE=_RTFOUT sasdate;
66 ODS PDF (ID=WEB) STYLE=Pearl FILE=_PDFOUT;
67 &GRAPHINIT;
68 OPTIONS FIRSTOBS=1;
69 OPTIONS OBS=MAX;
70 OPTIONS DTRESET DATE NUMBER NOTES;
71 OPTIONS NOTES STIMER SOURCE NOSYNTAXCHECK;
72
73 %MACRO catreport(opts,Derivation=, Mutation=);
74 PROC FREQ DATA = datasets.cats;
75 TABLES &Derivation/&opts;
76 TITLE 'Cat Breeds by &Derivation';
77 RUN;
78
79 PROC PRINT DATA = datasets.cats;
80 WHERE &Derivation = "&Mutation";
81 TITLE "Cat Breeds with &Derivation = &Mutation";
82 RUN;
83 %MEND catreport;
84 options SYMBOLGEN MPRINT MLOGIC;
85 %catreport(Derivation=Origin, Mutation=Thailand)
86
87 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
88 ODS HTML CLOSE;
89 &GRAPHTERM; ;*';*";*/;RUN;QUIT;
90 QUIT;RUN;
91 ODS HTML5 (ID=WEB) CLOSE;
92
93 ODS RTF (ID=WEB) CLOSE;
94 ODS PDF (ID=WEB) CLOSE;
95 FILENAME _GSFNAME;
96 DATA _NULL_;
97 RUN;
98 OPTIONS VALIDMEMNAME=COMPAT;
99 OPTIONS NOTES STIMER SOURCE SYNTAXCHECK;
100
 
5 REPLIES 5
Astounding
PROC Star

Try adding a comma in the macro call:

 

%catreport(,Derivation=Origin, Mutation=Thailand)

 

The positional parameter (OPTS) has to be accounted for.

r_behata
Barite | Level 11

Please post the Log .

emma19901
Calcite | Level 5

log added to the question.

r_behata
Barite | Level 11

Is there an error in the log ? sorry , I am unable to notice it.

andreas_lds
Jade | Level 19

When posting code and/or log always paste the text into the window opened by clicking on the {i}-icon. This way formatting is preserved, increasing readability.

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 5 replies
  • 972 views
  • 2 likes
  • 4 in conversation