全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2045 4
2012-03-14
请问,现在有一批数据,如何在SAS/IML中提取某些特定的分位数,请高手指点。谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-14 12:39:59
在proc iml;这个statement前添加ods trace on;
run;这个statement后添加ods trace off;
从新run; 然后看log, 找出你要分位数.
最后用ods select ***分位数名称***;
二维码

扫码加我 拉你入群

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

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

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;
二维码

扫码加我 拉你入群

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

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

2012-3-14 21:10:34
非常感谢,但我以前记得有非常简单的程序来实现,现在找不到了,能否有更简单的呢?
二维码

扫码加我 拉你入群

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

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

2012-3-15 08:10:59
good answer....jingju
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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