全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
11695 9
2009-03-19

有以下数据集:

id entr money
10001 a 23
10001 b 11
10002 b 35
10002 c 36
10003 a 56
10003 c 48  
如何将money按照id分类排序  并加上一列序号,结果变成

id entr money index
10001 b 11  1
10001 a 23  2
10002 b 35  1
10002 c 36  2
10003 c 48  1  
10003 a 56  2
请问哪位大虾知道? 帮忙解决下这个问题

二维码

扫码加我 拉你入群

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

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

全部回复
2009-3-19 19:02:00

我知道 proc rank 有这个功能,但是前提一定是 排序的那一列(money)的变量值是唯一的,如果是有相同的两个值又怎么办?

比如:10001 b 11  1
      10001 a 23  2 
      10002 b 35  1
      10002 c 35  2
      10003 c 48  1  
      10003 a 56  2

本文来自: 人大经济论坛(http://www.pinggu.org) 详细出处参考:https://bbs.pinggu.org/thread-431760-1-1.html

二维码

扫码加我 拉你入群

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

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

2009-3-19 21:56:00

看看是这样吗?
data lizzie;
   input id $5. @7 entr $1. money;
datalines;
10001 a 23
10001 b 11
10002 b 35
10002 c 36
10003 a 56
10003 c 48
;run;

proc sort data=lizzie out=lizzie_sort;
    by id entr;
run;
data lizzie_idx;
    set lizzie_sort;
       by id;
    retain idx;
    if first.id then idx=1;
    else idx+1;
run;
proc print data=lizzie_idx;
run;

output
Obs     id     entr    money    idx
1     10001     a        23      1
2     10001     b        11      2
3     10002     b        35      1
4     10002     c        36      2
5     10003     a        56      1
6     10003     c        48      2

二维码

扫码加我 拉你入群

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

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

2009-3-19 22:20:00

    

[此贴子已经被作者于2009-3-19 22:28:08编辑过]

二维码

扫码加我 拉你入群

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

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

2009-3-19 22:35:00

哈哈  就是yangyitian那种方法。。谢谢各位大虾了  谢谢谢谢

二维码

扫码加我 拉你入群

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

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

2009-3-22 06:54:00
学习。 多谢
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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