我有一个像这样的数据集:
id1 id2
a a
b b
b c
c d
c e
d f
e g
e h
我需要像这样排序:
id1 id2
a a
b b
c d
d f
e g
b c
c e
e h
实际上,这个步骤是一个较小的程序,用于处理实验室测试样本的大型程序。我没有任何编码尝试。我知道PROC SORT不能这样做,因为我想要的最终结果数据集在技术上并没有“排序”。任何帮助将不胜感激。
答案 0 :(得分:2)
从你的评论中,在你转到每个ID1值的第二个版本之前,听起来你会想要每个ID1的第一个ID2。我不确定你为什么要这样做(而且只是乞求出现问题)但我认为这样可行:
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;
它会在您的样本数据上生成您想要的结果。