2016-03-16 62 views
0

我有serveral的變量,包括一個,RIF一個數據庫,即相對於一個的x^2形狀另一個變量,ÿ HASE數據。 enter image description hereSAS:劃分給定的彎曲變量

我想要獲取兩個獨立的數據庫,根據觀察值是在曲線的遞減還是遞增部分分開。

我以爲我有東西通過使用lag函數,但我的代碼不起作用。

proc sort data=have; by y; run; 
data want; 
    set have; 
    do while (rif<=lag(rif)); 
     Part=1; 
     end; 
    if Part ne 1 then Part=2 
run; 

和分離的給定部分,但它似乎創建無限循環。

有沒有在我的代碼錯誤/有沒有這樣做

回答

0
data have; 
    do x = -10 to 10 by 1; 
     y = x**2; 
     output; 
    end; 
run; 

data want; 
    set have; 
    lag_y = lag(y); 
    if _n_ = 1 then Part=.; 
     else if y <= lag_y then Part=1; 
     else Part=2; 
    drop lag_y; 
run; 
+0

感謝一個更好的辦法,但這裏有兩個問題。一個是,如果我在右邊部分有相同的值,我仍然會在第二部分得到Part = 1,但情況並非如此。另一個是在我的數據上,我似乎遇到了一些問題,因此無法正常工作。 –

+0

@AnthonyMartin能否請您上傳您的數據作爲附件?謝謝 –

+0

我不知道該怎麼做。 –