在SAS

2013-07-24 48 views
0

在循環排序的數據集我有一個數據集,像這樣:在SAS

ID1 ID2

AA

BB

BC

CD

CE

d˚F

例如

Ëħ

我需要像這樣對它進行排序:

ID1 ID2

一個一個

B B

Çd

d˚F

例如

B C

ÇË

Ëħ

在現實中這種步驟是在一個更大的程序處理實驗室測試樣品更小的組。我沒有任何編碼嘗試。我知道PROC SORT不能做到這一點,因爲最終的結果集我想是不是技術上的「排序」。任何幫助,將不勝感激。

+1

你能不能把你的排序背後的邏輯在一兩句?我沒有立即看到它背後的推理。 – mvherweg

+0

所以我想(如果A,A,B,B)進行排序,以(A,B,A,B)。我不想ID1到數據集中在通過ID2排序可能有ID1重複觀測順序重複。按id1排序是原始狀態。 –

回答

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; 

它產生你想要的結果對你的樣本數據。

+0

正是我在找的東西。我沒有想到使用第三個變量進行排序。謝謝! –