34.DEBUGGING IN MACROS

                   DEBUGGING SAS MARCOS/DEBUGGING IN MACROS 

THERE ARE SOME OPTIONS IN SAS FOR DEBUGGING:

1.MPRINT

2.MLOGIC

3.SYMBOLGEN


1.MPRINT: MPRINT TRANSLATE THE MACRO LANGUAGE TO REGULAR LANGUAGE

   IT WILL DISPLAY ALL THE SAS STATEMENT OF RESOLVED MACRO CODE


OPTIONS MPRINT;

%MACRO RIYA(INPUT=,OUTPUT=);

PROC MEANS DATA=&INPUT;

VAR HEIGHT;

OUTPUT OUT=&OUTPUT MEAN=;

RUN;

%MEND;

%RIYA(INPUT=SASHELP.HEART,OUTPUT=RIYA);

 

IN LOG IF WE APPLY MPRINT IT WILL SHOW LIKE BELOW OUTPUT:

MPRINT(RIYA):   PROC MEANS DATA=SASHELP.HEART;

MPRINT(RIYA):   VAR HEIGHT

MPRINT(RIYA):   OUTPUT OUT=RIYA MEAN=;

MPRINT(RIYA):   RUN;



2.MLOGIC:IT WILL DISPLAY THE MACRO VARIABLES RESOLVED EACH TIME IN THE 'LOG' LIKE TRUE /FALSE


OPTIONS MLOGIC;

%MACRO RIYA(INPUT=,OUTPUT=);

PROC MEANS DATA=&INPUT;

VAR HEIGHT;

OUTPUT OUT=&OUTPUT MEAN=;

RUN;

%MEND;

%RIYA(INPUT=SASHELP.HEART,OUTPUT=RIYA);


IN LOG IF WE APPLY MLOGIC IT WILL SHOW LIKE BELOW OUTPUT:

MLOGIC:BEGINNING EXECUTION

MLOGIC:PARAMETER INPUT HAS VALUE SASHELP.HEART

MLOGIC:PARAMETER OUTPUT HAS VALUE RIYA



3.SYMBOLGEN;

IT WILL WRITE RESULTS OF RESOLVING MACRO VARIABLES REFERENCE 

            TO THE SAS LOG FOR DEBUGGING


OPTIONS SYMBOLGEN;

%MACRO RIYA(INPUT=,OUTPUT=);

PROC MEANS DATA=&INPUT;

VAR HEIGHT;

OUTPUT OUT=&OUTPUT MEAN=;

RUN;

%MEND;

%RIYA(INPUT=SASHELP.HEART,OUTPUT=RIYA);


IN LOG IF WE APPLY SYMBOLGEN IT WILL SHOW LIKE BELOW OUTPUT:

SYMBOLGEN: MACRO VAR INPUT RESOLVED TO SASHELP.HEART

SYMBOLGEN: MACRO VAR OUTPUT RESOLVED TO RIYA



DIFFERENCE BETWEEN MPRINT AND SYMBOLGEN:

MPRINT: PRINT "ALL THE STATEMENTS" WITHIN THE MACRO


SYMBOLGEN:IT WILL PRINT ONLY THE "RESULTS" OF THE MACRO VARIABLES


HOW TO TURN OFF THE DEBUGGING OPTIONS?

APPLY OPTIONS NOMPRINT NOMLOGIC NOSYMBOLGEN;



TO STORE/SAVING THE LOG TO EXTERNAL TEXT FILE

  USE PROC PRINTTO STATEMENT...


PROC PRINTTO LOG="C:\Users\OneDrive\Desktop\LOG223.TXT";

RUN;



PROC SQL;

SELECT MEAN(AGE) INTO :RIYA

FROM SASHELP.CLASS;

QUIT;


%PUT &RIYA;



%INCLUDE:::: IF THE GENERATED MACRO STORES PRESENT IN THE OUTER SIDE OF THE SAS ENVIRONMENT AND 

   TO CALL THE CREATED MACRO USE THE %INCLUDE SAME LIKE LIBNAME



%INCLUDE "C:\Users\OneDrive\Desktop\MEANS MACRO'S.sas";


--PLEASE FOLLOW THE BLOG FOR MORE INFO....

--JOIN US IN FACEBOOK AND TELEGRAM CHANNEL FOR MORE UPDATES

   CLICK HERE: https://t.me/SasAll4You



Comments