BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
smackerz1988
Pyrite | Level 9

Hello,

I'm working with PROC GLIMMIX in SAS 9.4 and trying to output the 'Solutions for Fixed Effects' table to a dataset using the ODS OUTPUT statement. However, I'm receiving a warning that the output 'Solutions' was not created. Here's the part of the code that seems to be causing the issue:

 

 

ods output SolutionF=beta00;
ods output LSMeans=lsm00;
PROC GLIMMIX data=qs00 METHOD=RSPL; 
title 'Mixed Model Repeated Measures';
CLASS usubjid trtp;  
EFFECT spl=spline(ady); 
MODEL aval = spl base trtp / ddfm=kr solution; 
RANDOM _residual_ / type=cs subject=usubjid; 
by parcat1n parcat1 paramn param ;
where ady>1; /*assumes ady=1 for baseline*/
LSMEANS trtp / at ady=1 cl;  
LSMEANS trtp / at ady = 22 cl ;
LSMEANS trtp / at ady = 43 cl ;
LSMEANS trtp / at ady = 64 cl ;
LSMEANS trtp / at ady = 85 cl ;
run;

The log gives me the following warning

 

 

"WARNING: Output 'SolutionF' was not created. Make sure that the output object name, label, or path is spelled correctly and verify that the appropriate procedure options are used to produce the requested output object. For example, the NOPRINT option is not used."

 

I've confirmed that the model statement includes the solution option, and there's no NOPRINT option in use. The 'Solutions for Fixed Effects' table does appear in the Results Window, indicating that it is being generated.

 

Could someone please help me understand why this warning occurs and how to correctly capture this table in my output dataset? Is 'Solutions' the correct output object name for PROC GLIMMIX in SAS 9.4?

Any advice or guidance would be greatly appreciated!

Thank you!

 

1 ACCEPTED SOLUTION

Accepted Solutions
Rick_SAS
SAS Super FREQ

> Any advice or guidance would be greatly appreciated!

 

1. I encourage you to always put your ODS statements inside the PROC/RUN block, not outside.

2. When you use the 

RANDOM _residual_

statement, the label on the ParameterEstimates table changes to "Solutions for Fixed Effects," but it is still called the ParameterEstimates table, as you can determine by usgin ODS TRACE ON; before running the procedure.

3. Thus, use something like this

ODS TRACE ON;
title 'Mixed Model Repeated Measures';
PROC GLIMMIX data=qs00 METHOD=RSPL; 
   CLASS usubjid trtp;  
   EFFECT spl=spline(ady); 
   MODEL aval = spl base trtp / ddfm=kr solution; 
   RANDOM _residual_ / type=cs subject=usubjid; 
   by parcat1n parcat1 paramn param ;
   where ady>1; /*assumes ady=1 for baseline*/
   LSMEANS trtp / at ady=1 cl;  
   LSMEANS trtp / at ady = 22 cl ;
   LSMEANS trtp / at ady = 43 cl ;
   LSMEANS trtp / at ady = 64 cl ;
   LSMEANS trtp / at ady = 85 cl ;
   /* output tables to data sets */
   ods output ParameterEstimates=beta00; 
   ods output LSMeans=lsm00; 
run;
ODS TRACE OFF;

View solution in original post

3 REPLIES 3
PaigeMiller
Diamond | Level 26

According to the PROC GLIMMIX documentation, there is no SOLUTIONF table name that can be output via ODS OUTPUT. Maybe you mean SOLUTIONR ?

--
Paige Miller
Rick_SAS
SAS Super FREQ

> Any advice or guidance would be greatly appreciated!

 

1. I encourage you to always put your ODS statements inside the PROC/RUN block, not outside.

2. When you use the 

RANDOM _residual_

statement, the label on the ParameterEstimates table changes to "Solutions for Fixed Effects," but it is still called the ParameterEstimates table, as you can determine by usgin ODS TRACE ON; before running the procedure.

3. Thus, use something like this

ODS TRACE ON;
title 'Mixed Model Repeated Measures';
PROC GLIMMIX data=qs00 METHOD=RSPL; 
   CLASS usubjid trtp;  
   EFFECT spl=spline(ady); 
   MODEL aval = spl base trtp / ddfm=kr solution; 
   RANDOM _residual_ / type=cs subject=usubjid; 
   by parcat1n parcat1 paramn param ;
   where ady>1; /*assumes ady=1 for baseline*/
   LSMEANS trtp / at ady=1 cl;  
   LSMEANS trtp / at ady = 22 cl ;
   LSMEANS trtp / at ady = 43 cl ;
   LSMEANS trtp / at ady = 64 cl ;
   LSMEANS trtp / at ady = 85 cl ;
   /* output tables to data sets */
   ods output ParameterEstimates=beta00; 
   ods output LSMeans=lsm00; 
run;
ODS TRACE OFF;
smackerz1988
Pyrite | Level 9

@Rick_SAS Perfect. Thank you so much for your help!

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 443 views
  • 1 like
  • 3 in conversation