0

我有一个像这样的数据集:

id1 id2

bb

公元前

光盘

ce

df

例如

我需要这样排序:

id1 id2

bb

光盘

df

例如

公元前

ce

实际上,这一步是处理实验室测试样本的更大程序中的一个较小的集合。我没有任何编码尝试。我知道 PROC SORT 不能这样做,因为我想要的最终结果数据集在技术上不是“排序的”。任何帮助,将不胜感激。

4

1 回答 1

2

从您的评论中,听起来您需要每个 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;

它会在样本数据上产生您想要的结果。

于 2013-07-24T20:07:12.157 回答