楼主: lnlhckao123
5390 15

[问答] 请问一段SAS的独立样本t检验的程序错在哪里 [推广有奖]

  • 0关注
  • 3粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
14810 个
通用积分
10.6125
学术水平
7 点
热心指数
4 点
信用等级
4 点
经验
12566 点
帖子
754
精华
0
在线时间
405 小时
注册时间
2010-8-21
最后登录
2025-6-7

楼主
lnlhckao123 发表于 2011-7-4 11:36:34 |AI写论文
150论坛币
请问一段SAS的独立样本t检验和单向方差分析的结果P值小数位控制的程序错在哪里,主要是“output”为红色,程序如下,请高手指点,谢谢!
data ex3_7;                                                  
  input x @@;
  if _n_<21 then c=1;
            else c=2;
cards;
-0.70 -5.60 2.00 2.80 0.70 3.50 4.00 5.80 7.10 -0.50
2.50 -1.60 1.70 3.00 0.40 4.50 4.60 2.50 6.00 -1.40
3.70  6.50 5.00 5.20 0.80 0.20 0.60 3.40 6.60 -1.10
6.00  3.80 2.00 1.60 2.00 2.20 1.20 3.10 1.70 -2.00
;
proc ttest data=ex3_7;
var x;
class c;
output out=o3;
run;
proc print data=o3;
run;



data b5;
  input x3 c @@;
cards;
  1.22    1    .8409   2       .1216      3      .7120      4     .8333      5
  1.34    1    .6974      2       .2316      3      .5905      4     .9240      5
  1.13    1    .8409      2       .4475      3      .7120      4     .7117      5
  1.43    1    .7792      2       .9659      3      .8950      4     .6624      5
  1.53    1   1.2924      2       .5786      3      .2535      4     .3237      5
  1.26    1    .7738      2       .4353      3      .3439      4     .7303      5
;
proc anova data=b5;
  class c;
  model x3=c;
   output out=o4;
run;
proc print data=o3 label;
   format pvalue 13.9;
run;

最佳答案

abcd6089 查看完整内容

ods rtf file='c:\abc.rtf'; 或者 ods pdf file='c:\abc.pdf';
关键词:sas的 t检验 output Input outpu 样本 程序 检验 SAS

本帖被以下文库推荐

即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

沙发
abcd6089 发表于 2011-7-4 11:36:35
ods rtf file='c:\abc.rtf';       或者    ods pdf file='c:\abc.pdf';                                                                   <<< abc 為你要出的檔案名稱                                            
                                                                                                                                       
data b3;                                                                                                                                
  input x2 c @@;                                                                                                                        
cards;                                                                                                                                 
  1.22    1    .8409      2       .1216      3      .7120      4     .8333      5                                                      
  1.34    1    .6974      2       .2316      3      .5905      4     .9240      5                                                      
  1.13    1    .8409      2       .4475      3      .7120      4     .7117      5                                                      
  1.43    1    .7792      2       .9659      3      .8950      4     .6624      5                                                      
  1.53    1   1.2924      2       .5786      3      .2535      4     .3237      5                                                      
  1.26    1    .7738      2       .4353      3      .3439      4     .7303      5                                                      
;                                                                                                                                       
run;                                                                                                                                    
proc npar1way wilcoxon  data=b3;                                                                                                        
  var x2;                                                                                                                              
  class c;                                                                                                                              
  output out=o3;                                                                                                                        
run;                                                                                                                                    
                                                                                                                                       
proc print data=o3 label;                                                                                                               
   format P_KW 13.9;                                                                                                                    
run;                                                
                                                                                   
ods rtf close;          或 ods pdf close;                                            

這個就是ods 程序...這是出rtf檔案的..諾你要出 pdf  在第一行紅字中..把rtf..改為 pdf..如此類推..
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lnlhckao123 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
honghejing 发表于 2011-7-4 12:22:46
要用ODS才行

板凳
honghejing 发表于 2011-7-4 12:26:15
ods output Ttests=ttest_output;
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

报纸
stata18 发表于 2011-7-4 12:46:29
楼上说的正解。

ods output TTests=res_t Equality=res_eq Statistics=res_des;
proc ttest data=ex3_7;
var x;
class c;
run;
proc print data=res_t;run;
proc print data=res_eq;run;
proc print data=res_des;run;
ods output close;
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

地板
abcd6089 发表于 2011-7-4 22:22:32
正確的是這樣

data ex3_7;                                                                                                                             
  input x @@;                                                                                                                           
  if _n_<21 then c=1;                                                                                                                  
            else c=2;                                                                                                                  
cards;                                                                                                                                 
-0.70 -5.60 2.00 2.80 0.70 3.50 4.00 5.80 7.10 -0.50                                                                                    
2.50 -1.60 1.70 3.00 0.40 4.50 4.60 2.50 6.00 -1.40                                                                                    
3.70  6.50 5.00 5.20 0.80 0.20 0.60 3.40 6.60 -1.10                                                                                    
6.00  3.80 2.00 1.60 2.00 2.20 1.20 3.10 1.70 -2.00                                                                                    
;                                                                                                                                       
proc ttest data=ex3_7;                                                                                                                  
var x;                                                                                                                                 
class c;                                                                                                                                
                                                                                                                                       
run;                                                                                                                                    
proc print data=ex3_7;                                                                                                                  
run;                                                                                                                                    
                                                                                                                                       
                                                                                                                                       
                  
因為你是proc ttest..不可能在後面加上output;
output statement通常加在data step..e.g do loops
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

7
lnlhckao123 发表于 2011-7-5 00:03:28
谢谢楼上各位!我程序的目的是把t检验的结果存在数据o3里,然后通过程序
proc print data=o3 label;
   format P_KW 15.13;
run;
proc print data=o3 label;
   format P_KW 13.9;
run;
来控制p值输出的小数位数,不好意思我在一楼没表达清楚我的意思!谢谢各位高手指点!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

8
lnlhckao123 发表于 2011-7-5 00:28:44
我想请教一下,如下的程序为什么“output”不为红色(也不用ODS 语句),而且可以完成我在一楼的类似目的,谢谢高手指点!
data b3;                                                      
  input x2 c @@;
cards;
  1.22    1    .8409      2       .1216      3      .7120      4     .8333      5
  1.34    1    .6974      2       .2316      3      .5905      4     .9240      5
  1.13    1    .8409      2       .4475      3      .7120      4     .7117      5
  1.43    1    .7792      2       .9659      3      .8950      4     .6624      5
  1.53    1   1.2924      2       .5786      3      .2535      4     .3237      5
  1.26    1    .7738      2       .4353      3      .3439      4     .7303      5
;
run;
proc npar1way wilcoxon  data=b3;
  var x2;
  class c;
  output out=o3;
run;

proc print data=o3 label;
   format P_KW 13.9;
run;
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

9
honghejing 发表于 2011-7-5 06:16:59
你可以在ttest或者npar1way的程序段两端使用ods trace on和ods trace off;可以在log中看到一些统计量的路径。个人认为npar1way可能输出的主要为pvalue,而ANOVA或者GLM输出的有其他的统计量,包括置信区间,方差分析等。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
liuzhenzhu + 50 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 50  学术水平 + 2  热心指数 + 2   查看全部评分

10
abcd6089 发表于 2011-7-9 21:00:58
請問樓主解決了嗎??

解決了好付款喔

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 09:51