SAS中文论坛

标题: proc reg输出问题 [打印本页]

作者: shiyiming    时间: 2010-3-3 14:45
标题: proc reg输出问题
我把proc reg的结果用ods输出parameter部分,得到:
variable  estimate  tvalue
intercept 0.004  1.45
var1       0.05    1.66
var2       0.34    1.98
var3       1.09    2.56
.......

我想将显示结果变为:
variable  estimate
intercept   0.004
                (1.45)
var1          0.05
                (1.66*)
var2          0.34
                (1.98**)
var3          1.09
                 (2.56***)
.......

其中pvalue<0.001是***,<0.05是**,<0.10是*,不过输出的是tvalue。

我实际上有十几个variable,直接输出手动改太费时间了,请问有什么简单的办法吗?
作者: shiyiming    时间: 2010-3-7 11:57
标题: Re: proc reg输出问题
[code:3lk13qv7]ODS OUTPUT ParameterEstimates = pe;
proc reg data;
      model Y = var:;
run;
ODS OUTPUT CLEAR;
PROC FORMAT;
        VALUE ProbtFmt
        0 -< 0.001 = '***'
        0.001 -< 0.05 = '**'
        0.05 -< 0.10 = '*'
        OTHER = ' ';
RUN;
DATA pe_1(RENAME = (Estimate_1 = Estimate));
        SET pe;
        Estimate_1 = CATS(PUT(Estimate, 10.3), '(', PUT(tValue, 10.2), PUT(Probt, ProbtFmt.),')');
        KEEP VARIABLE Estimate_1;
RUN;[/code:3lk13qv7]
尽量不要手改。
作者: shiyiming    时间: 2010-3-8 16:15
标题: Re: proc reg输出问题
太牛了,我折腾了半天搞出来的比你这个复杂多了,景仰一下!!!
作者: shiyiming    时间: 2010-3-8 16:23
标题: Re: proc reg输出问题
这个code里面是把estimate和tvalue放在同一行里面了,有办法能分开两行放么?

variables estimate
intercept  1.78
intercept  (2.58***)
var1   0.05
var1   (1.98**)

大概这个样子。
作者: shiyiming    时间: 2010-3-8 21:58
标题: Re: proc reg输出问题
[code:zs4074d1]DATA pe_1(RENAME = (Estimate_1 = Estimate));
   SET pe;
        LENGTH Estimate_1 $ 15;
   Estimate_1 = PUT(Estimate, 8.3);
        OUTPUT;
        Estimate_1 = CATS('(', PUT(tValue, 8.2), PUT(Probt, ProbtFmt.),')');
        OUTPUT;
   KEEP VARIABLE Estimate_1;
RUN;[/code:zs4074d1]




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2