版主,就这个数据我其实还有个问题。。今天又琢磨一天,不知道哪里错了。。
我又加了一组数,主要是这个按照数来判断的,
如图中画的,如果出现相同的数,则q值应该跟前一个一样。。但是结果就是出不来呢。
data a;
input id x i ;
cards;
1 900 .
2 800 .
3 750 1
4 600 .
5 650 .
6 500 .
7 300 2
8 300 3
9 300 4
9 200 .
10 150 5
11 140 6
;
run;
data final;
set a;
retain rt 0;
rt+1;
if i ne . then do q=rt-1;rt=0;end;
drop rt; /*用你之前写的,求q值的*/
if i ne . then do;
if x=lag(x) /*把x与x的前一个数值比较*/
then q=lag(q);end; /*如果相等,q等于上一个q值,并循环倒下一个*/
run;
觉得求的这个q值还是有点复杂,其实就是如果左边的数相等,右边的数就应该相等。