楼主: lnlhckao123
12981 15

[原创博文] 有无办法在SAS里使输出的P值的小数点位数按照自己需要的保留并输出 [推广有奖]

  • 0关注
  • 3粉丝

副教授

62%

还不是VIP/贵宾

-

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

楼主
lnlhckao123 发表于 2011-6-20 04:30:09 |AI写论文
300论坛币
有无办法使输出的P值的小数点位数按照自己需要的保留并输出,比如t检验,F检验(方差分析)、卡方检验、秩检验等?谢谢高手指点!

最佳答案

bobguy 查看完整内容

See example below, data t1; do i=1 to 30; x=rannor(123);e=rannor(123); y=1+1*x+rannor(123); output; end; run; proc template; define column Common.pValue; notes "Default p-value column"; just = r; format = pvalue16.14; end; run; proc reg data=t1; model y=x; run; quit; proc univariate data=t1; var x e; run;
关键词:小数点 方差分析 高手指点 卡方检验 F检验 小数点

本帖被以下文库推荐

沙发
bobguy 发表于 2011-6-20 04:30:10
See example below,

data t1;
  do i=1 to 30;
    x=rannor(123);e=rannor(123);
y=1+1*x+rannor(123);
output;
  end;
run;

proc template;
   define column Common.pValue;
      notes "Default p-value column";
      just = r;
      format = pvalue16.14;
   end;
run;

proc reg data=t1;
model y=x;
run;
quit;

proc univariate data=t1;
var x e;
run;
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 好的意见建议

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

藤椅
njmch 发表于 2011-6-20 07:17:30
可以使用proc template试试

板凳
njmch 发表于 2011-6-20 07:22:27
可以参照下面SAS的User's Guide:
http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_ods_sect005.htm

报纸
lzsxy2009 发表于 2011-6-20 08:05:23
对于这个问题,很大部分由计算机的变量的空间分配以及数据的处理,算法决定的。对于一般的电脑对于变量分配的空间最多10个字节,精度可以达到小数点前16位,小数点后6位。除非你用大型计算机或者超级计算机精度可以继续提高。在计算机可以达到的精度水平比如小数点后6位,这是你无法超越的,而计量软件肯定在这个精度范围内,你看看有没有给出小数点7位的?都在计算机的精度运算精度以内

地板
lnlhckao123 发表于 2011-6-20 08:23:52
谢谢4楼!但是我会给你例子说明,实际情况不是这样的,例子如下
data a;                                          /*这个程序输出的P=0.007526135,为小数点后9位*/
p=1-probchi(7.1429,1);
put p=;
run;
proc print ;
var p;
run;


data a;
p=(1-probt(abs(1.812),10))*2;                           /*这个程序输出的P=0.10008,为小数点后5位*/
put p=;
run;
proc print ;
var   p;
run;

还有一个普遍存在的事实,当你用SPPS算出P值,虽然表面上P值也只保留3到5位,但是当你双击P值,进入数据编辑框时,我每一次都发现这时的P值保留的小数位都大于6位(我以前碰到这种情况起码有1000次);
所以还望高手指点,谢谢!!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

7
ntsean 发表于 2011-6-20 10:28:18
用 format 不就可以了吗?
比如 format p 10.3

8
lnlhckao123 发表于 2011-6-20 12:27:57
请问format命令干嘛用,怎样用?谢谢高手指点!!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

9
ntsean 发表于 2011-6-20 18:57:59
比如你的程序改成

data a;                                          /*这个程序输出的P=0.007526135,为小数点后9位*/
format p 10.3;
p=1-probchi(7.1429,1);
put p=;
run;
proc print ;
var p;
run;

那么就保留小数点3位了
已有 1 人评分学术水平 热心指数 收起 理由
lnlhckao123 + 1 + 1 好的意见建议

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

10
lnlhckao123 发表于 2011-6-21 02:40:40
版主你好!我想问一下,为什么我在该主题贴里11楼到14楼的帖子不可见,还有我发现在我的贴里只要我的帖子超过10楼,就不可见,为什么?谢谢版主回答!
谢谢ntsean!可是我用你的程序试了一下,发现,它只能在原有的基础上,进行保留小数,即下列这个程序可以保留3位小数,但无法保留10位以上的小数。
data a;                                          /*这个程序输出的P=0.007526135,为小数点后9位*/
format p 10.3;
p=1-probchi(7.1429,1);
put p=;
run;
proc print ;
var p;
run;

还有,我再想请教一个问题,用format命令怎样保存12位以及22位的小数?谢谢高手指点!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

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

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