2014-03-07 66 views
0
Obs Best _streak_ 
1 Freeburg Foxes 1 
2 Freeburg Foxes 2 
3 Freeburg Foxes 3 
4 Freeburg Foxes 4 
5 Charlotte Chipmunks 1 
6 Toronto Turtles 1 
7 Toronto Turtles 2 
8 Freeburg Foxes 1 
9 Freeburg Foxes 2 
10 Toronto Turtles 1 
... 

Obs Best _streak_ 
1 Freeburg Foxes 4 
2 Charlotte Chipmunks 1 
3 Toronto Turtles 2 
4 Freeburg Foxes 2 (thanks for correcting) 
... 

上面(上面第一個)是我當前的SAS輸出。不過,我只想顯示團隊名稱的條紋的最大次數。所以我的輸出看起來像第二個(或更短的輸出)。SAS:挑選某些觀察值來顯示

回答

0

我相信,在所需的輸出觀察4應該是:

4 Freeburg Foxes 2 

? 因此,我們選擇最大條紋爲每個隊的每個隊列系列,而不是絕對最大值,對嗎?

然後,您可以這樣做,添加同一數據集的第二個實例,向上移動一行,以便能夠「向前看」並確定當前記錄是系列中的最後一個記錄::

data want; 
    set have; 
    if not eof then do; 
     set have(firstobs=2 keep=Best 
         rename=(Best=nextBest)) 
         end=eof; 
    end; 
    if Best^=nextBest or eof then output; 
    drop next:; 
run; 
+0

非常感謝!如果可以的話,我會鼓勵你,但我沒有聲望。 – user3391003

1

如果數據按照您指定的順序排序,那麼您可以使用NOTSORTED選項只需傳遞一次數據即可得到結果。

data have; 
input best & $20. _streak_; 
datalines; 
Freeburg Foxes 1 
Freeburg Foxes 2 
Freeburg Foxes 3 
Freeburg Foxes 4 
Charlotte Chipmunks 1 
Toronto Turtles 1 
Toronto Turtles 2 
Freeburg Foxes 1 
Freeburg Foxes 2 
Toronto Turtles 1 
; 
run; 

data want; 
set have; 
by best notsorted; 
if last.best; 
run;