全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6724 3
2016-12-01
求问,SAS proc rank 步骤中,比如说
proc rank data=case out=result groups=4;
var x1;
rank rank_x1;
by x2;
run;
x1是用来排序的变量,rank_x1计量分组结果,那x2是具有什么作用?网上查到是叫分组变量,但是没有例子,实在看不懂。
求大神解答!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-12-1 14:55:30
分组这个
你可以想成  年 月
就是会每年每月分组

或者不同产业
就是依照每个产业对X1分组

或者是不同地区
那就是依照每个地区对x1分组

组 类别概念 就只是想一个合理的分类去解释就好
二维码

扫码加我 拉你入群

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

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

2016-12-2 14:55:47
刚好前几天看了proc rank 的介绍,看能否回答你的问题。

它主要是用于分组后的“组内”排序。你举的例子x1应该是排序的变量,x2则是分组变量。

举个例子,某年级3个班(Banji  1、2、3)考试“马克思主义哲学”,成绩如下:

data zexue;
input Xuehao Banji Chengji @@;
cards;
12 2 80 45 3 65 33 1 97
04 3 77 23 3 85 52 2 69
22 1 95 39 1 89 75 2 89
;
proc sort;
by Banji descending Chengji ;
run;

rank0.jpg

上表用 proc sort 将 chengji 按照班级 (Banji )由高到低排序,但不能告诉每个学生在他班上的具体名次。


在上面数据集的基础上,我们用 proc rank 很轻松的将 chengji 按班级( Banji) 排名次:

proc rank descending data=zexue out=Banji_Paiming;
var Chengji;
ranks Mingci;
by Banji;
run;

rank3.jpg

这里,var Chengji 就是你的x1,指排序的变量,by Banji 是x2,指按班级分组。

几点说明:

1,此例我用的是proc rank descending,不是proc rank,因为学生成绩以最高分排前面,所以用降序。其它很多情况(如比赛100冲刺,万米长跑等)以时间最短排前面,升序,用proc rank。

2,by Banji 也可移到 ranks 语句前面,结果一样。

3,ranks 语句也可省略不要,最后结果将显示 Chengji 内容(或者说,Chengji 内容 被新的排序取代了),其它不变。

proc rank descending data=zexue out=Banji_Paiming;
var Chengji ;
by Banji ;
run;
ran4.jpg


二维码

扫码加我 拉你入群

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

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

2016-12-16 09:39:11
dogmamongo 发表于 2016-12-1 14:55
分组这个
你可以想成  年 月
就是会每年每月分组
谢谢您!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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