全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6780 4
2007-08-07

用univariate可以生成某变量任意间隔的分位数,比如我可以生成从1-99每隔5%的分位数,那么相当于对该变量排序后20等分,每个分隔点上的值,现在我想实现按该变量从小到大的顺序将样本20等分,然后计算每一类里的一些均值、比例等统计量,该如何实现呢??

二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-12 09:10:01
一个思路:排序后生成分位数变量a,根据分位数变量生成一个新的变量b, if a大约等于0小于5% b等于c1,else if a大于等于5%小于等于10% b等于c2,一直到c20,然后可以根据变量b来分组分析
二维码

扫码加我 拉你入群

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

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

2015-6-14 09:42:50
同意二楼观点
二维码

扫码加我 拉你入群

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

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

2015-6-14 20:02:34
bakoll 发表于 2015-6-12 09:10
一个思路:排序后生成分位数变量a,根据分位数变量生成一个新的变量b, if a大约等于0小于5% b等于c1,else ...
那求问如何能够得到分位数变量?
二维码

扫码加我 拉你入群

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

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

2015-6-17 17:15:27
littlepig818 发表于 2015-6-14 20:02
那求问如何能够得到分位数变量?
也可以用proc rank来达到这个目的
其中一个分组选项,分为二十组,首先从小到大或从大到小排列,然后均分成20组:
     proc rank data=sashelp.class out=result descending ties=mean groups=20;
          var height;
          ranks r_height;
     run;
其中descending是从小到大排序,ties是处理相同的值的选项,groups=是用来指定分成几组,这里不是随机分组,是按照顺序以后的分组,也就是说排好名次后按名次顺序分组。当然也可以用fraction percent来实现分位数的目的,可详细学习一下proc rank。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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