<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating results table from Proc Survereg in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636594#M189136</link>
    <description>&lt;P&gt;The report is not a quick 'one off' due to several factors:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Each regression has output tables that don't 'align' for the desired report&lt;/LI&gt;
&lt;LI&gt;Two regressions&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The output tables can't be combined to be in a shape that tabulate can perform as expected.&amp;nbsp; &amp;nbsp; TABULATE is nice, in so far as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;when a variable is placed in a table the format can be specified.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The downside of tabulate is that a cell can display only&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A class level, class value or aggregation result from values belonging to a dimensional intersection.&lt;/LI&gt;
&lt;LI&gt;The `estimate` you want shown is actually combination of the estimate and probt 'category'.&amp;nbsp; Tabulate can't do that.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;A Proc REPORT step can be coded to have a COMPUTE block that computes a complex value rendering based on more than one column (such as aforementioned estimate and probt).&amp;nbsp; But the data alignments are still a little off and each column would need a CALL DEFINE to render the numbers according the the row specific format.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The tricky part of your report is that it is showing the estimate table output (which has estimate, stderr and probt in a single row) in a row-wise pivot fashion (estimate on one row and stderr on next row) stacked with rows from FitStatistic and DesignSummary output tables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way to deal with all the issues is take them on one by one in a series of steps in which you can control the data shape and cell value renderings and do a final simple PRINT or REPORT.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Fake data&lt;/P&gt;
&lt;PRE&gt;data have(drop=_:);
  call streaminit(1234);

  length industry $25;                                          _n_=-1;
  do industry = 'Mining', 'Automotive', 'Pharmaceutical'; _n_+1;_m_=-1;
  do year = 2017 to 2019;                                 _m_+1;
  do id = 1 to 1221;
    array iv iv1-iv7;
    do over iv;
      iv = ceil(rand('norm', _n_*3+_m_, 1));
      if iv &amp;lt; 1 or iv &amp;gt; 9 then iv = .;
    end;
    dv1 = iv1 * 1.15
        + iv2 / 2
        + iv3 * (1.00+rand('uniform',1))
        - iv4 / 3
        + iv5 * 2
        - iv6 / (0.01+rand('uniform',3))
        - iv7 * (1.00+rand('uniform')/7)
        ;
    dv2 = iv1/1
        + iv2/2
        - iv3/(0.01+rand('uniform',3))
        - iv4/(3.00+rand('uniform',4))
        + iv5/1.5
        - iv6/2
        - iv7/2
        ;
    output;
  end;
  end;
  end;
  format dv: 9.2;
run;&lt;/PRE&gt;
&lt;P&gt;Custom formats and regressions&lt;/P&gt;
&lt;PRE&gt;proc format;     
	picture estimatef (round)
		low - &amp;lt; 0 = ' 9.999' (prefix='-')
		0  &amp;lt;- high=' 9.999'                                 
            .=' ';    
	picture stderrf (round)       
     	low-high=' 9.999)' (prefix='(')                                
            .=' ';                                                  
  value probtstars
      0 - 0.01 = ' ***'
      0.01 &amp;lt;- 0.05 = ' **'
      0.05 &amp;lt;- 0.10 = ' *'
      other = ' !!!';
run;


ods output 
  ParameterEstimates (persist) = est_dv1
  DesignSummary (persist)      = smy_dv1
  FitStatistics (persist)      = fit_dv1
;
 
proc surveyreg data = HAVE ; 
  cluster id;
  class industry year;
  model dv1 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;                                                   
                                                                    

ods output 
  ParameterEstimates (persist) = est_dv2
  DesignSummary (persist)      = smy_dv2
  FitStatistics (persist)      = fit_dv2
;

proc surveyreg data = HAVE ; 
  cluster id;
  class industry year;
  model dv2 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;         
&lt;/PRE&gt;
&lt;P&gt;Computing formatted renderings of estimate and stderr (instead of TABULATE *F=...)&lt;/P&gt;
&lt;PRE&gt;data est_dv1;
  set est_dv1;
  estimate_fmt = put(estimate,estimatef.) || put(probt,probtstars.);
  stderr_fmt   = put(stderr,stderrf.);
run;

data est_dv2;
  set est_dv2;
  estimate_fmt = put(estimate,estimatef.) || put(probt,probtstars.);
  stderr_fmt   = put(stderr,stderrf.);
run;
&lt;/PRE&gt;
&lt;P&gt;Reshaping estimates (row-wise transpose), stacking with other regression output and their computed renderings (PUT(...)) for each modeled dependent variable&lt;/P&gt;
&lt;PRE&gt;proc transpose data=est_dv1 out=est_T_dv1;
  by parameter;
  var estimate_fmt stderr_fmt;
run;

proc transpose data=est_dv2 out=est_T_dv2;
  by parameter;
  var estimate_fmt stderr_fmt;
run;

data t1 (keep=model var _name_ col1 row);
  model = 'dv1';

  length var label1 $32;

  set est_T_dv1 fit_dv1 smy_dv1;

  var = coalesceC (parameter, label1);
  
  if label1 =: 'Adj' then col1 = put (nvalue1, 5.3);
  if label1 =: 'Num' then col1 = left(put (nvalue1, comma12.));

  if not missing(parameter) or label1 in ('Adjusted R-Square', 'Number of Clusters' );

  row+1;
run;

data t2 (keep=model var _name_ col1 row);
  model = 'dv2';

  length var label1 $32;

  set est_T_dv2 fit_dv2 smy_dv2;

  var = coalesceC (parameter, label1);

  if label1 =: 'Adj' then col1 = put (nvalue1, 5.3);
  if label1 =: 'Num' then col1 = left(put (nvalue1, comma12.));

  if not missing(parameter) or label1 in ('Adjusted R-Square', 'Number of Clusters' );

  row+1;
run;

data t;
  set t1 t2;
run;
&lt;/PRE&gt;
&lt;P&gt;Transposing again to get one column per modeled variable&lt;/P&gt;
&lt;PRE&gt;proc sort data=t;
  by row model;
run;

proc transpose data=t out=report;
  by row var _name_;
  id model;
  var col1;
run;&lt;/PRE&gt;
&lt;P&gt;and lastly a REPORT with a /order to hide repeated var values.&amp;nbsp; ODS Excel instead of tagsets.excelxp&lt;/P&gt;
&lt;PRE&gt;ods excel file='surveyreg-report.xlsx';
ods html file='surveyreg-report.html';
ods listing;

proc report data=report(drop=row _name_);
 define var / order order=data;
run;

ods _all_ close;&lt;/PRE&gt;
&lt;P&gt;Excel output&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="surveyreg report excel.png" style="width: 323px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/37645i88955C0B2B6D03B1/image-size/large?v=v2&amp;amp;px=999" role="button" title="surveyreg report excel.png" alt="surveyreg report excel.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 01 Apr 2020 15:56:32 GMT</pubDate>
    <dc:creator>RichardDeVen</dc:creator>
    <dc:date>2020-04-01T15:56:32Z</dc:date>
    <item>
      <title>Creating results table from Proc Survereg</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/635392#M188656</link>
      <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to create the following excel table from the output listing from proc surveyreg. I have code for a partial table. I am including what I want and what I have. Please help. What I want is three things:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Put stars to indicate significance level on the coefficient values.&amp;nbsp;Statistical significance at 10%, 5%, and 1% is denoted by *, **, and ***, respectively.&lt;/P&gt;&lt;P&gt;2) Put Adjusted R-square in the bottom row.&lt;/P&gt;&lt;P&gt;3) Put number of clusters in the bottom row.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help in modifying the following to get what I want. Here is an example of what I want:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Variable&lt;/TD&gt;&lt;TD&gt;Dependent Variable 1&lt;/TD&gt;&lt;TD&gt;Dependent Variable 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 2&lt;/TD&gt;&lt;TD&gt;0.534***&lt;/TD&gt;&lt;TD&gt;0.712***&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.071)&lt;/TD&gt;&lt;TD&gt;(0.030)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 3&lt;/TD&gt;&lt;TD&gt;0.451**&lt;/TD&gt;&lt;TD&gt;-0.382&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.369)&lt;/TD&gt;&lt;TD&gt;(0.148)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 4&lt;/TD&gt;&lt;TD&gt;0.078***&lt;/TD&gt;&lt;TD&gt;0.091***&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.021)&lt;/TD&gt;&lt;TD&gt;(0.011)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 5&lt;/TD&gt;&lt;TD&gt;0.374***&lt;/TD&gt;&lt;TD&gt;-0.147***&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.056)&lt;/TD&gt;&lt;TD&gt;(0.022)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 6&lt;/TD&gt;&lt;TD&gt;1.420***&lt;/TD&gt;&lt;TD&gt;-0.605*&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.364)&lt;/TD&gt;&lt;TD&gt;(0.161)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Independent Variable 7&lt;/TD&gt;&lt;TD&gt;0.713***&lt;/TD&gt;&lt;TD&gt;0.713***&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;(0.034)&lt;/TD&gt;&lt;TD&gt;(0.019)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Adjusted R-Square&lt;/TD&gt;&lt;TD&gt;0.425&lt;/TD&gt;&lt;TD&gt;0.241&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Number of Clusters&lt;/TD&gt;&lt;TD&gt;1,343&lt;/TD&gt;&lt;TD&gt;1,343&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following code that I use:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc format;     
	picture estimatef (round)
		low - &amp;lt; 0 = ' 9.999' (prefix='-')
		0  &amp;lt;- high=' 9.999'                                 
            .=' ';    
	picture stderrf (round)       
     	low-high=' 9.999)' (prefix='(')                                
            .=' ';                                                  
run;


ods output parameterestimates (persist) = t1;                        
                                                                    
proc surveyreg data = e2.h1 ; 
cluster id;
class industry year;
model dv1 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;                                                   
                                                                    


data t1; set t1;
model = 'Dependent Variable 1       ';
run;

ods output parameterestimates (persist) = t2;                        
                                                                    

proc surveyreg data = e2.h1 ; 
cluster id;
class industry year;
model dv2 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;                                                   
                                                                    
data t2; set t2;
model = 'Dependent Variable 2       ';
run;



data t; set t1 t2;
run;


/*using ODS to transfer it to excel*/
ods tagsets.excelxp
file='C:\Users\Desktop\finalresults2format.xls'
style=minimal
options (orientation = 'landscape'
fittopage = 'yes'
pages_fitwidth = '1'
pages_fitheight = '100' sheet_interval='none');

proc tabulate data=t noseps;      
  class model parameter / order=freq;                    
  var estimate stderr; 
  table parameter='  '*(estimate =' '*sum=' '*F=estimatef.                          
                     stderr=' '*sum=' '*F=stderrf.),                
         model='                               '                                                  
          / box=[label="Variable"] rts=25 row=float misstext=' '; 
run;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Mar 2020 17:19:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/635392#M188656</guid>
      <dc:creator>therock</dc:creator>
      <dc:date>2020-03-27T17:19:54Z</dc:date>
    </item>
    <item>
      <title>Re: Creating results table from Proc Survereg</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636309#M189026</link>
      <description>&lt;P&gt;"&lt;SPAN&gt;Statistical significance at 10%, 5%, and 1% is denoted by *, **, and ***, respectively.&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Suppose you have&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;       Tests of Model Effects

Effect    Num DF    F Value    Pr &amp;gt; F

Model          6    8052.07    &amp;lt;.0001
iv2            1    16970.4    &amp;lt;.0001
iv3            1      35.43    &amp;lt;.0001
iv4            1     577.90    &amp;lt;.0001
iv5            1       5.53    0.0207
iv6            1      27.56    &amp;lt;.0001
iv7            1      83.00    &amp;lt;.0001

NOTE: The denominator degrees of freedom for the F tests is 99.

&lt;/PRE&gt;
&lt;P&gt;How do your star values 10% 5% 1% correspond to Pr &amp;gt; F values ?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 17:55:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636309#M189026</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-03-31T17:55:51Z</dc:date>
    </item>
    <item>
      <title>Re: Creating results table from Proc Survereg</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636320#M189035</link>
      <description>&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To answer your question from your example,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The estimates of iv2, iv3, iv4, iv6, and iv7 will have three (***) star.&lt;/P&gt;&lt;P&gt;The estimate of iv5 will have two (**) star.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 Mar 2020 18:31:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636320#M189035</guid>
      <dc:creator>therock</dc:creator>
      <dc:date>2020-03-31T18:31:21Z</dc:date>
    </item>
    <item>
      <title>Re: Creating results table from Proc Survereg</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636594#M189136</link>
      <description>&lt;P&gt;The report is not a quick 'one off' due to several factors:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Each regression has output tables that don't 'align' for the desired report&lt;/LI&gt;
&lt;LI&gt;Two regressions&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The output tables can't be combined to be in a shape that tabulate can perform as expected.&amp;nbsp; &amp;nbsp; TABULATE is nice, in so far as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;when a variable is placed in a table the format can be specified.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The downside of tabulate is that a cell can display only&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A class level, class value or aggregation result from values belonging to a dimensional intersection.&lt;/LI&gt;
&lt;LI&gt;The `estimate` you want shown is actually combination of the estimate and probt 'category'.&amp;nbsp; Tabulate can't do that.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;A Proc REPORT step can be coded to have a COMPUTE block that computes a complex value rendering based on more than one column (such as aforementioned estimate and probt).&amp;nbsp; But the data alignments are still a little off and each column would need a CALL DEFINE to render the numbers according the the row specific format.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The tricky part of your report is that it is showing the estimate table output (which has estimate, stderr and probt in a single row) in a row-wise pivot fashion (estimate on one row and stderr on next row) stacked with rows from FitStatistic and DesignSummary output tables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way to deal with all the issues is take them on one by one in a series of steps in which you can control the data shape and cell value renderings and do a final simple PRINT or REPORT.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Fake data&lt;/P&gt;
&lt;PRE&gt;data have(drop=_:);
  call streaminit(1234);

  length industry $25;                                          _n_=-1;
  do industry = 'Mining', 'Automotive', 'Pharmaceutical'; _n_+1;_m_=-1;
  do year = 2017 to 2019;                                 _m_+1;
  do id = 1 to 1221;
    array iv iv1-iv7;
    do over iv;
      iv = ceil(rand('norm', _n_*3+_m_, 1));
      if iv &amp;lt; 1 or iv &amp;gt; 9 then iv = .;
    end;
    dv1 = iv1 * 1.15
        + iv2 / 2
        + iv3 * (1.00+rand('uniform',1))
        - iv4 / 3
        + iv5 * 2
        - iv6 / (0.01+rand('uniform',3))
        - iv7 * (1.00+rand('uniform')/7)
        ;
    dv2 = iv1/1
        + iv2/2
        - iv3/(0.01+rand('uniform',3))
        - iv4/(3.00+rand('uniform',4))
        + iv5/1.5
        - iv6/2
        - iv7/2
        ;
    output;
  end;
  end;
  end;
  format dv: 9.2;
run;&lt;/PRE&gt;
&lt;P&gt;Custom formats and regressions&lt;/P&gt;
&lt;PRE&gt;proc format;     
	picture estimatef (round)
		low - &amp;lt; 0 = ' 9.999' (prefix='-')
		0  &amp;lt;- high=' 9.999'                                 
            .=' ';    
	picture stderrf (round)       
     	low-high=' 9.999)' (prefix='(')                                
            .=' ';                                                  
  value probtstars
      0 - 0.01 = ' ***'
      0.01 &amp;lt;- 0.05 = ' **'
      0.05 &amp;lt;- 0.10 = ' *'
      other = ' !!!';
run;


ods output 
  ParameterEstimates (persist) = est_dv1
  DesignSummary (persist)      = smy_dv1
  FitStatistics (persist)      = fit_dv1
;
 
proc surveyreg data = HAVE ; 
  cluster id;
  class industry year;
  model dv1 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;                                                   
                                                                    

ods output 
  ParameterEstimates (persist) = est_dv2
  DesignSummary (persist)      = smy_dv2
  FitStatistics (persist)      = fit_dv2
;

proc surveyreg data = HAVE ; 
  cluster id;
  class industry year;
  model dv2 = iv2 iv3 iv4 iv5 iv6 iv7 / noint ADJRSQ solution;  
run;  
                                                                    
ods output close;         
&lt;/PRE&gt;
&lt;P&gt;Computing formatted renderings of estimate and stderr (instead of TABULATE *F=...)&lt;/P&gt;
&lt;PRE&gt;data est_dv1;
  set est_dv1;
  estimate_fmt = put(estimate,estimatef.) || put(probt,probtstars.);
  stderr_fmt   = put(stderr,stderrf.);
run;

data est_dv2;
  set est_dv2;
  estimate_fmt = put(estimate,estimatef.) || put(probt,probtstars.);
  stderr_fmt   = put(stderr,stderrf.);
run;
&lt;/PRE&gt;
&lt;P&gt;Reshaping estimates (row-wise transpose), stacking with other regression output and their computed renderings (PUT(...)) for each modeled dependent variable&lt;/P&gt;
&lt;PRE&gt;proc transpose data=est_dv1 out=est_T_dv1;
  by parameter;
  var estimate_fmt stderr_fmt;
run;

proc transpose data=est_dv2 out=est_T_dv2;
  by parameter;
  var estimate_fmt stderr_fmt;
run;

data t1 (keep=model var _name_ col1 row);
  model = 'dv1';

  length var label1 $32;

  set est_T_dv1 fit_dv1 smy_dv1;

  var = coalesceC (parameter, label1);
  
  if label1 =: 'Adj' then col1 = put (nvalue1, 5.3);
  if label1 =: 'Num' then col1 = left(put (nvalue1, comma12.));

  if not missing(parameter) or label1 in ('Adjusted R-Square', 'Number of Clusters' );

  row+1;
run;

data t2 (keep=model var _name_ col1 row);
  model = 'dv2';

  length var label1 $32;

  set est_T_dv2 fit_dv2 smy_dv2;

  var = coalesceC (parameter, label1);

  if label1 =: 'Adj' then col1 = put (nvalue1, 5.3);
  if label1 =: 'Num' then col1 = left(put (nvalue1, comma12.));

  if not missing(parameter) or label1 in ('Adjusted R-Square', 'Number of Clusters' );

  row+1;
run;

data t;
  set t1 t2;
run;
&lt;/PRE&gt;
&lt;P&gt;Transposing again to get one column per modeled variable&lt;/P&gt;
&lt;PRE&gt;proc sort data=t;
  by row model;
run;

proc transpose data=t out=report;
  by row var _name_;
  id model;
  var col1;
run;&lt;/PRE&gt;
&lt;P&gt;and lastly a REPORT with a /order to hide repeated var values.&amp;nbsp; ODS Excel instead of tagsets.excelxp&lt;/P&gt;
&lt;PRE&gt;ods excel file='surveyreg-report.xlsx';
ods html file='surveyreg-report.html';
ods listing;

proc report data=report(drop=row _name_);
 define var / order order=data;
run;

ods _all_ close;&lt;/PRE&gt;
&lt;P&gt;Excel output&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="surveyreg report excel.png" style="width: 323px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/37645i88955C0B2B6D03B1/image-size/large?v=v2&amp;amp;px=999" role="button" title="surveyreg report excel.png" alt="surveyreg report excel.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2020 15:56:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-results-table-from-Proc-Survereg/m-p/636594#M189136</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-04-01T15:56:32Z</dc:date>
    </item>
  </channel>
</rss>

