If you don't end up getting it through the ODS table, I'd contact SAS tech support.
That being said, I'll copy in the code we use for writing the GLMSELECT results to a text file, and read it back in and parse out the estimates. It would save you time if you need to go that route. We use this to build 2 tables - the parameter estimates and the goodness of fit statistics + holdout sample error (which we use as our selection criteria).
Earlier, i've specificed proc printto and my glm select and then closed the printto.
data modeloutput parms modelstats; infile "output.txt" firstobs= 1 lrecl=32767 truncover; attrib SAS_OUTPUT length = $250 txn_name length = $50; input SAS_OUTPUT 1 - 250; sas_output=compress(sas_output,,'c'); *removes the form feed character that shows page breaks, which interferes with logic below; output modeloutput; retain txn_Name parmtable_f; if substr(sas_output,1,3) = "---" then txn_name=strip(tranwrd(substr(sas_output,index(upcase(sas_output),"NEW_SKILL_NAME")+15,50),'-','')); if substr(sas_output,1,11) = "Parameter E" then parmtable_f = 1; *everything after this point will have a 1**; if substr(sas_output,1,3) = "---" then parmtable_f = 0; *at the end of the table, switch value back to zero; *now, output all of the parameter estimates to a separate data set; if parmtable_f = 1 then output parms; else if substr(sas_output,1,8) = "Adj R-Sq" or substr(sas_output,1,3) = "AIC" or substr(sas_output,1,3) = "SBC" or substr(sas_output,1,3) = "ASE" or find(sas_output,"Number of Observations")=1 then output modelstats; drop parmtable_f; run; data modelstats2(drop=sas_output); set modelstats; metric_name = substr(sas_output,1,find(sas_output," ")); metric_value=compbl(substr(sas_output,find(sas_output," "),50))*1; run; data parms2(drop=sas_output p_value2 where=(parameter is not missing)); attrib txn_name parameter class_value length=$50 DF Estimate Std_Error T_Score P_value format=best12. p_value2 length=$10; set parms; if substr(sas_output,1,9) = "Parameter" then delete; if substr(sas_output,1,5) = " " then delete; if substr(sas_output,1,1)="*" then sas_output=substr(sas_output,3,length(sas_output)-2); *Non-classification variables; if scan(sas_output,1," ")="Intercept" or scan(sas_output,1," ")="Weektrend" then do; parameter=scan(sas_output,1," "); class_value=""; DF=scan(sas_output,2," ")*1; Estimate=scan(sas_output,3," ")*1; Std_Error=scan(sas_output,4," ")*1; T_Score=scan(sas_output,5," ")*1; P_Value2=scan(sas_output,6," "); end; *Classification variables; else do; parameter=scan(sas_output,1," "); class_value=scan(sas_output,2," "); DF=scan(sas_output,3," ")*1; Estimate=scan(sas_output,4," ")*1; Std_Error=scan(sas_output,5," ")*1; T_Score=scan(sas_output,6," ")*1; P_Value2=scan(sas_output,7," "); end; if p_value2="<.0001" then p_value=.0001; else p_value=p_value2*1; if estimate=. then delete; run;
... View more