2016-03-16 22 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

我不知道该怎么做。 –