楼主: harlon1976
1843 4

[原创博文] 如何在SAS/IML中提取某些特定的分位数 [推广有奖]

  • 2关注
  • 27粉丝

版主

院士

49%

还不是VIP/贵宾

-

威望
1
论坛币
37273 个
通用积分
100.0959
学术水平
25 点
热心指数
39 点
信用等级
17 点
经验
58976 点
帖子
1898
精华
0
在线时间
4213 小时
注册时间
2005-8-27
最后登录
2024-4-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问,现在有一批数据,如何在SAS/IML中提取某些特定的分位数,请高手指点。谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:分位数 高手指点 如何

沙发
astrozscore 发表于 2012-3-14 12:39:59 |只看作者 |坛友微信交流群
在proc iml;这个statement前添加ods trace on;
run;这个statement后添加ods trace off;
从新run; 然后看log, 找出你要分位数.
最后用ods select ***分位数名称***;

使用道具

藤椅
yugao1986 发表于 2012-3-14 14:33:45 |只看作者 |坛友微信交流群
PROC IML;
   scores={90,62,66,68,70,72,73,74,78,78,78,79,80,81,82,
           82,82,84,84,85,85,85,85,87,88,89,89,89,89,61};
   PRINT scores;
   quartiles=QUARTILE(scores);
   PRINT quartiles;
/** Start Percentile **/
START percentile(x,pct);
   CALL SORT(x,1);
   count=NROW(x);
   pct=pct/100*(count+1);
   fpct=FLOOR(pct);
   cpct=CEIL(pct);
   IF fpct=cpct THEN percentile=x[pct];
   ELSE percentile=x[fpct]+(pct-fpct)* (x[cpct]-x[fpct]);
/* SAS PCTLDF */
RETURN(percentile);
FINISH;
percentile=PERCENTILE(scores,25);
/** End Percentile **/


CALL SORT(scores,1); /* sorts the scores in ascending order */
count=NROW(scores);  
quantile=scores[CEIL(count*.25)];
PRINT quartiles, "25th Percentile:"
      percentile, "25th Quantile:" quantile;
QUIT;
三人行必有我师

使用道具

板凳
harlon1976 发表于 2012-3-14 21:10:34 |只看作者 |坛友微信交流群
非常感谢,但我以前记得有非常简单的程序来实现,现在找不到了,能否有更简单的呢?

使用道具

报纸
jingju11 发表于 2012-3-15 08:10:59 |只看作者 |坛友微信交流群
good answer....jingju

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:51