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

时间:2013-07-24 19:38:27

标签: sorting sas

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

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不能这样做,因为我想要的最终结果数据集在技术上并没有“排序”。任何帮助将不胜感激。

1 个答案:

答案 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;

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