全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3323 14
2013-04-29
悬赏 200 个论坛币 已解决
请问高手,怎样定义P值输出的位数,如下两个程序步,怎样定义他们的P值输出位数,谢谢高手指点!

proc npar1way wilcoxon;
  var x;
  class c;
run;


proc ttest;
var x;
class c;
run;

最佳答案

ariman911 查看完整内容

法一: 第一個npar1way有output statement 所以可以用最簡單的方法 proc npar1way wilcoxon; var x; class c; output out=aa; run; proc print data=aa; format PR_WIL P2_WIL PTR_WIL PT2_WIL P_KW 12.9; run; 第二個ttest沒有output的statement 可以使用ods的statement ods trace on; proc ttest data=test; var x; class c; run; ods trace off; run; 先去Log裡看每個表單的名稱如下 Output Added: ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-4-29 21:13:05
法一:
第一個npar1way有output statement
所以可以用最簡單的方法
proc npar1way wilcoxon;
  var x;
  class c;
  output out=aa;
run;
proc print data=aa;
format PR_WIL P2_WIL PTR_WIL PT2_WIL P_KW 12.9;
run;
第二個ttest沒有output的statement
可以使用ods的statement
ods trace on;
proc ttest data=test;
var x;
class c;
run;
ods trace off;
run;
先去Log裡看每個表單的名稱如下
Output Added:
-------------
Name:       TTests
Label:      T-Tests
Template:   Stat.TTest.TTests
Path:       Ttest.x.TTests
可以知道你的TTest表的名稱
法二
可以用ods將檢定表格輸出如下
proc ttest data=test;
var x;
class c;
ods output TTests=bb;
run;
proc print data=bb;
format probt 12.9;
run;
法三:
利用proc template修改ttest的表格內容再執行一次ttest如下
proc template;
    edit Stat.TTest.TTests;
        edit Probt;
            format = 12.9;
        end;  
    end;
run;
proc ttest data=test;
var x;
class c;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-29 22:55:14
/* this works for TTest */

proc template;         /* add and run this before t-test */
   define column Common.PValue;
            format = pvalue4.2;                     /* this can be changed as format=pvalue5.3 */
   end;
run;

proc ttest  data = sashelp.class;
   var weight;
   class sex;
run;

ODS PATH SASHELP.TMPLMST(READ);    /* restore to the default template setting */
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-30 10:41:55
ariman911 发表于 2013-4-29 23:31
法一:
第一個npar1way有output statement
所以可以用最簡單的方法
对于第三种方法修改ttest表格内容,不知如何才能恢复到默认设置,是也用楼上的ODS PATH SASHELP.TMPLMST(READ); 语句吗?谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-4-30 12:07:41
楼上的问提很好。 我理解这样的,不一定准确。

沙发里最后一句:   ODS PATH SASHELP.TMPLMST(READ); 是后来加上的。

前面的define 语句实际是新定义了一个column的格式, 并没有修改sas default的输出格式。

而新定义的格式有使用优先权。 所以后面遇到输出pvalue时就会使用这个格式。

最后一句实际上只是恢复使用default的输出格式。

没有试过 edit (修改)sas default template. 感觉修改后的 template,
用 ODS PATH SASHELP.TMPLMST(READ); 语句是不可以恢复的,只能修改回去。

建议在 edit 前要先做一个备份。
default template 的文件名是 tmplmst.sas7bitm,可一在下面的folder里找到。

C:\Program Files\sasroot\core\sashelp.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-1 17:21:42
那是我以前從SUGI看到的
下面是原始文章
http://www.nesug.org/proceedings/nesug06/po/po09.pdf
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群