关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
经管之家新媒体交易平台
提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】
期刊
- 期刊库 | 马上cssci就要更新 ...
- 期刊库 | 【独家发布】《财 ...
- 期刊库 | 【独家发布】“我 ...
- 期刊库 | 【独家发布】“我 ...
- 期刊库 | 【独家发布】国家 ...
- 期刊库 | 请问Management S ...
- 期刊库 | 英文期刊库
- 核心期刊 | 歧路彷徨:核心期 ...
TOP热门关键词
最近看到很多疑难解惑的帖子(如:https://bbs.pinggu.org/thread-1255645-1-1.html)都在讨论分组排序的问题,包括如何分别在DATA步和SQL中实现这一功能?对此,特做一总结,共同分享!欢迎讨论!Q:原始数据集如下: ...
坛友互助群 |
扫码加入各岗位、行业、专业交流群 |
Q: 原始数据集如下:
Obs | var1 | var2 |
1 | A | z |
2 | A | y |
3 | A | x |
4 | A | t |
5 | B | s |
6 | B | d |
7 | C | f |
8 | C | g |
9 | C | h |
A:想要得到一个分组排序的编号的变量flag, 期望的数据集如下:
Obs | var1 | var2 | flag |
1 | A | t | 1 |
2 | A | x | 2 |
3 | A | y | 3 |
4 | A | z | 4 |
5 | B | d | 1 |
6 | B | s | 2 |
7 | C | f | 1 |
8 | C | g | 2 |
9 | C | h | 3 |
DATA步实现(简单快捷):
- data test;
- input var1 $ var2 $;
- cards;
- A z
- A y
- A x
- A t
- B s
- B d
- C f
- C g
- C h
- ;
- run;
- proc sort data=test;by var1 var2;run;
- data final;
- set test;
- by var1;
- if first.var1 then flag=1;
- else flag+1;
- run;
- proc print;run;
- proc sql;
- create table test as
- select * from test order by var1,var2
- ;
- create table final as
- select a.var1,a.var2,(a.num-b.diff) as flag
- from
- (select var1,var2,monotonic() as num
- from test) as a,
- (select var1,var2,monotonic() as num,count(*) as obs,(calculated num-calculated obs) as diff
- from test
- group by var1
- having max(num)=num) as b
- where a.var1=b.var1
- ;
- quit;
- proc print;run;
SQL实现2(增加一个temp变量,借助该变量实现):
- data test;
- input var1 $ var2 $ temp;
- cards;
- A z 1
- A y 1
- A x 1
- A t 1
- B s 1
- B d 1
- C f 1
- C g 1
- C h 1
- ;
- run;
- proc sort data=test;by var1 var2;
- run;
- proc sql noprint;
- create table final as
- select A.var1,A.var2,SUM (B.temp) as flag
- from test as A inner join test as B ON A.var1 = B.var1
- where B.var2 <= A.var2
- group by A.var1,A.var2 ;
- quit;
扫码或添加微信号:坛友素质互助
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
本站推荐的文章
人气文章
本文标题:三种方法解决分组排序编号问题(2种SQL+1种DATA STEP)
本文链接网址:https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_1260188_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。