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!
> 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;
According to the PROC GLIMMIX documentation, there is no SOLUTIONF table name that can be output via ODS OUTPUT. Maybe you mean SOLUTIONR ?
> 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;
@Rick_SAS Perfect. Thank you so much for your help!
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
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.
Ready to level-up your skills? Choose your own adventure.