我有一个像这样的数据集:
id1 id2
啊
bb
公元前
光盘
ce
df
例如
诶
我需要这样排序:
id1 id2
啊
bb
光盘
df
例如
公元前
ce
诶
实际上,这一步是处理实验室测试样本的更大程序中的一个较小的集合。我没有任何编码尝试。我知道 PROC SORT 不能这样做,因为我想要的最终结果数据集在技术上不是“排序的”。任何帮助,将不胜感激。
从您的评论中,听起来您需要每个 ID1 中的第一个 ID2,然后再转到每个 ID1 值的第二个版本。我不确定你为什么要这样做(它只是在乞求问题出现)但是,我认为这会奏效:
data dataset; input id1 $ id2 $;
cards;
a a
b b
b c
c d
c e
d f
e g
e h
;
run;
proc sort data=dataset;
by id1 id2;
run;
data dataset; set dataset;
by id1 id2;
if first.id1 then count=0;
count+1;
run;
proc sort data=dataset;
by count id1 id2;
run;
它会在样本数据上产生您想要的结果。