楼主: rurusoso
1099 7

[问答] 排序問題 [推广有奖]

  • 0关注
  • 0粉丝

初中生

4%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
67 点
帖子
12
精华
0
在线时间
4 小时
注册时间
2012-9-26
最后登录
2014-6-10

楼主
rurusoso 发表于 2014-6-10 16:55:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想請問一下各位高手,本人的資料是屬於文字項,但是要轉為數字項,想要用排序賦予排名來達到轉為數字項的目的


比如說變項為 A A B B C A B,那麼我想產生數字變項 1 1 2 2 3 1 2,請問一下如何實現。


謝謝!






二维码

扫码加我 拉你入群

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

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

关键词:如何

沙发
intheangel 学生认证  发表于 2014-6-10 18:06:55
你只有ABCD还是有ABCD...Z啊?

藤椅
rurusoso 发表于 2014-6-10 18:09:32
有很多項,類似22E5A4E這種亂數字符

板凳
intheangel 学生认证  发表于 2014-6-10 18:10:49
rurusoso 发表于 2014-6-10 18:09
有很多項,類似22E5A4E這種亂數字符
也就是要把字符里面的字母换成数字?

报纸
mingfeng07 学生认证  发表于 2014-6-10 18:14:53
  1. data a;
  2. input a $ @@;
  3. cards;
  4. A A B B A C C
  5. ;
  6. run;
  7. proc sort data=a;by a;run;
  8. data b;
  9. set a;
  10. by a;
  11. retain n 0;
  12. if first.a then n+1;
  13. run;
复制代码

地板
rurusoso 发表于 2014-6-10 18:17:38
不是耶,就只是想把ID排序
                     
         ID                                RANK            
d32f00d6b3010e                        1
dbaf2381e0cfefd8                      2
eadb41248b3ff17                       3
dbaf2381e0cfefd8                      2
d32f00d6b3010e                        1
d32f00d6b3010e                        1
4288bb99fd6024                        4

想作成類似這樣

7
intheangel 学生认证  发表于 2014-6-10 18:33:02
rurusoso 发表于 2014-6-10 18:17
不是耶,就只是想把ID排序
                     
         ID                                RANK     ...
  1. data a;
  2. input ID $30.;
  3. cards;
  4. d32f00d6b3010e                    
  5. dbaf2381e0cfefd8                  
  6. eadb41248b3ff17                     
  7. dbaf2381e0cfefd8                    
  8. d32f00d6b3010e                     
  9. d32f00d6b3010e                        
  10. 4288bb99fd6024                        
  11. ;
  12. run;
  13. proc sort data=a out=b;
  14. by id;
  15. run;
  16. data b;
  17. retain rank 0;
  18. set b;by id;
  19. if first.id then rank=rank+1;
  20. run;
复制代码

8
Tigflanker 发表于 2014-6-11 09:47:53
  1. data a;
  2. input ID $30.;
  3.   MD5 = input(translate(put(md5(ID),hex16.),'123456','ABCDEF'),best.);
  4. cards;
  5. d32f00d6b3010e
  6. dbaf2381e0cfefd8
  7. eadb41248b3ff17
  8. dbaf2381e0cfefd8
  9. d32f00d6b3010e
  10. d32f00d6b3010e
  11. 4288bb99fd6024
  12. ;run;
复制代码

对了,我只是考虑到了字串的唯一性,并没有考虑到ASCII码转换顺序;
如果要求按照首字符排序,的确考虑rank函数为先。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 15:45