DATA Step, Macro, Functions and more

List of P Values for Excel Export

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 17
Accepted Solution

List of P Values for Excel Export

Hi,

 

I'm trying to get the P-value for a list of 20+ diffent variables to export to excel. I've set it up in a round-about way, but was wondering if there's someway to simplify it to avoid 1000s of lines of code. 

 

Thank you!

 

ODS OUTPUT MODELANOVA=OUTPUT;

PROC LOGISTIC DATA=PAT_LIST_FINAL;
CLASS SEX (REF = "0") ;
MODEL CMV_IND = SEX;
WHERE VLBW_YN = 'VLBW' AND VIRAL_YN = 1;
RUN;

 

PROC PRINT DATA=OUTPUT NOOBS;
RUN;

 

DATA SEX_P_VLBW;
SET OUTPUT;
RUN;

 

ODS OUTPUT MODELANOVA=OUTPUT;

PROC LOGISTIC DATA=PAT_LIST_FINAL;
CLASS LOCATE (REF = "0") ;
MODEL CMV_IND = LOCATE;
WHERE VLBW_YN = 'VLBW' AND VIRAL_YN = 1;
RUN;

 

PROC PRINT DATA=OUTPUT NOOBS;
RUN;

 

DATA LOCATE_P_VLBW;
SET OUTPUT;
RUN;

 

ODS OUTPUT MODELANOVA=OUTPUT;

PROC LOGISTIC DATA=PAT_LIST_FINAL;
CLASS HISP (REF = "0") ;
MODEL CMV_IND = HISP;
WHERE VLBW_YN = 'VLBW' AND VIRAL_YN = 1;
RUN;

 

PROC PRINT DATA=OUTPUT NOOBS;
RUN;

 

DATA HISP_P_VLBW;

SET OUTPUT;
RUN;

 

DATA P_VLBW;
SET
SEX_P_VLBW
LOCATE_P_VLBW
HISP_P_VLBW
;
RUN;


Accepted Solutions
Solution
‎06-29-2017 08:35 PM
Contributor
Posts: 23

Re: List of P Values for Excel Export

Using a macro would shorten the code a bit since the 3 steps prior to the merge are all similar. You can add additional class variables as needed.

 

%macro repeated(class);
ODS OUTPUT MODELANOVA=OUTPUT;
PROC LOGISTIC DATA=PAT_LIST_FINAL;
CLASS &class. (REF = "0") ;
MODEL CMV_IND = &class.;
WHERE VLBW_YN = 'VLBW' AND VIRAL_YN = 1;
RUN;

PROC PRINT DATA=OUTPUT NOOBS;
RUN;
 
DATA &class._P_VLBW;
SET OUTPUT;
RUN;
%mend repeated;

*Similar code for each class variable;
%repeated(class=SEX);
%repeated(class=LOCATE);
%repeated(class=HISP);

DATA P_VLBW;
SET
SEX_P_VLBW
LOCATE_P_VLBW
HISP_P_VLBW
;
RUN;

View solution in original post


All Replies
Solution
‎06-29-2017 08:35 PM
Contributor
Posts: 23

Re: List of P Values for Excel Export

Using a macro would shorten the code a bit since the 3 steps prior to the merge are all similar. You can add additional class variables as needed.

 

%macro repeated(class);
ODS OUTPUT MODELANOVA=OUTPUT;
PROC LOGISTIC DATA=PAT_LIST_FINAL;
CLASS &class. (REF = "0") ;
MODEL CMV_IND = &class.;
WHERE VLBW_YN = 'VLBW' AND VIRAL_YN = 1;
RUN;

PROC PRINT DATA=OUTPUT NOOBS;
RUN;
 
DATA &class._P_VLBW;
SET OUTPUT;
RUN;
%mend repeated;

*Similar code for each class variable;
%repeated(class=SEX);
%repeated(class=LOCATE);
%repeated(class=HISP);

DATA P_VLBW;
SET
SEX_P_VLBW
LOCATE_P_VLBW
HISP_P_VLBW
;
RUN;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 90 views
  • 0 likes
  • 2 in conversation