我在表中有两列。根据预定条件,第二列为1或零。有人可以帮我找出最大连续出现1的逻辑吗?例如,在下表中,最大的连续出现次数介于第7行和第18行之间。仅需逻辑来识别此行即可。
谢谢
答案 0 :(得分:0)
创建间隔。
data intervals ;
set have ;
by B NOTSORTED ;
if first.b then start=A ;
retain start ;
if last.b then do;
end = A ;
duration = end - start + 1 ;
output;
end;
drop A ;
run;
然后找到具有最大持续时间的间隔。也许您想要第一次出现最大持续时间?
proc sort data=intervals out=want ;
by descending duration start;
run;
data want ;
set want (obs=1);
where B=1;
run;
答案 1 :(得分:0)
类似的东西
data have;
input A B;
datalines;
1 0
2 0
3 1
4 1
5 1
6 0
7 0
8 0
9 1
10 0
11 1
12 1
13 1
14 1
15 1
16 1
17 0
18 0
19 0
20 1
21 0
;
proc sort data=have;
by A;
run;
data want;
set have;
if B=1 then count + 1;
if B = 0 then count = 0;
run;
proc sql;
select max(count) as max_value from want;