2016-11-24 375 views
1

我想從大型數據集中選擇每個業務類別的前10個風險。爲每個數據類型選擇前10個觀察值(SAS)

下面是數據集的一個例子。

dataset example

如果我需要的十大風險,然後我就簡單排序暴露下降(因爲我已經完成),並使用(實測值= 10)命令。

但是我需要每個LOB的前10位。

你知道我在SAS如何做到這一點嗎?

謝謝!

回答

1

我將建立一個計數虛擬變量,計算每業務線曝光次數,然後刪除該虛擬變量超過10

這可以在一個單一的datastep進行(給出的任何觀察到的數據正確排序)由(ab-)使用SAS代碼從上到下運行。

proc sort data = have out=temp; by lob descending exposure; run; 

data want(drop=countlob); 
    retain countlob; 
    set temp; 
    by lob; 

    countlob = countlob + 1; 
    if first.lob then countlob = 1; 

    if countlob > 10 then delete; 
run; 
相關問題