全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
13684 5
2010-04-28
用proc univariate 可以求得95%,5%,99%,1%上的值,可是我想求97%,3%或者其他百分位数上的值,要怎么求呢?

我的数据格式是这样的:

var1 var2 var3 var4 var5
111  1991 12   001  125
111  1992 12   001  543
111  1993 12   001  712
111  1994 12   001  258
111  1991 11   013  853
111  1992 11   013  592
111  1993 11   013  421
214  1991 02   001  125
214  1992 02   001  503
214  1993 02   001  612
214  1994 02   001  359
214  1991 10   011  853
214  1992 10   011  572
214  1993 10   011  421

我想要求的是var1、var3、var4 相同时,var5按升序排列后97%和3%的值(或者其他不同的百分位),然后输出到一个新的数据集中。
原来求95%和5%的值时我是这么写的:

proc univariate data = temp noprint;
var  var5;
by var1 var3 var4;
output out = dataset p5=p5 p95=p95 p1=p1 p99=p99;
run;  

希望大虾们指教,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-4-28 08:37:53
试试下面的代码
proc univariate pctldef=4 data=temp;
var var5;   
output out=Pctls pctlpts  = 3 97
  pctlpre=pred                                             
  pctlname =p3 p97;         
run;
二维码

扫码加我 拉你入群

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

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

2010-4-28 11:14:47
proc univariate pctldef=4   data=temp;/*为univariate过程指定分位数计算的数学定义方法,一般是1-5*/
var var5;   
output out=Pctls pctlpts  = 3 97 /*制定所输出的百分位数*/
  pctlpre=pred     /*制定输出的百分位数指定变量名称的前缀*/                                       
  pctlname =p3 p97;  /*后缀,你可以尝试把P3 P97位置换一下?会有什么影响*/        
run;
二维码

扫码加我 拉你入群

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

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

2010-4-30 21:01:26
proc kde好像也可以。如果是两变量,kde是个解决的方法。
二维码

扫码加我 拉你入群

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

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

2016-10-30 10:51:53
crackman 发表于 2010-4-28 11:14
proc univariate pctldef=4   data=temp;/*为univariate过程指定分位数计算的数学定义方法,一般是1-5*/
v ...
请问第一步中的1~5什么意思啊,为什么不同的数结果不同
二维码

扫码加我 拉你入群

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

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

2016-10-30 20:58:06
同问1-5什么意思呢?谢谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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