如何按ID分组排序:将Event=1的行置于同组首位且其余行日期升序
实现按ID分组调整行顺序的解决方案
可以通过SAS的PROC SORT过程实现需求,核心是通过多关键字排序规则,先按ID分组,再将Event='1'的行前置,剩余行按入院日期升序排列。
代码实现
/* 生成目标数据集DB1 */ proc sort data=DB out=DB1; by ID descending Event Date_Admission; run;
规则说明
by ID:确保同一ID的所有行被归为一组,不会跨ID混合排序descending Event:对Event字段降序排序,由于字符型的'1'ASCII码大于'0',降序后Event='1'的行自动排在该ID组的最前面Date_Admission:对于Event值相同的行(即Event='0'的记录),按入院日期升序排列,符合需求中的剩余行排序规则
执行上述代码后,得到的DB1数据集将完全匹配你期望的输出结构。
内容的提问来源于stack exchange,提问作者NewUsr_stat
相关产品推荐
相关产品推荐

