Sorting 在SAS中对循环中的数据集进行排序

Sorting 在SAS中对循环中的数据集进行排序,sorting,sas,Sorting,Sas,我有这样一个数据集: id1 id2 a b b b c c d c e d-f 例如 e h 我需要这样分类: id1 id2 a b b c d d-f 例如 b c c e e h 实际上,这一步在处理实验室测试样本的大型程序中是一个较小的步骤。我没有任何编码尝试。我知道PROC-SORT不能做到这一点,因为我想要的最终结果数据集在技术上不是“排序”的。任何帮助都将不胜感激。从您的评论中,听起来您可能希望从每个ID1中获得第一个ID2,然后再转到每个ID1值的第二个版本。我不知道你为什么要

我有这样一个数据集:

id1 id2

a

b b

b c

c d

c e

d-f

例如

e h

我需要这样分类:

id1 id2

a

b b

c d

d-f

例如

b c

c e

e h


实际上,这一步在处理实验室测试样本的大型程序中是一个较小的步骤。我没有任何编码尝试。我知道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;

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

您能用几句话来说明排序背后的逻辑吗?我并没有马上看到它背后的原因,所以我想(如果a,a,b,b)排序为(a,b,a,b)。我不希望id1以数据集包含观察值的顺序重复。按id2排序可能会重复id1。按id1排序是原始状态。这正是我想要的。我没有想到使用第三个变量进行排序。非常感谢。