请问各位前辈,我现在要统计变量seg1至变量seg10中不同取值的个数,程序如下:
data d;
set c;
array seg[10] seg1-seg10;
seg_2=0;
ok:do i=1 to 10;
do k=i-1 to 1 by -1;
if k<=0 then goto to;
if substr(seg(i),1,2)=substr(seg(k),1,2) then goto ok;
end;
to:do j=i+1 to 10;
if substr(seg(i),1,2)^=' ' and substr(seg(i),1,2)^=substr(seg(j),1,2) then do;
seg_2+1;
goto ok;
end;
end;
end;
run;
但是这个程序好像陷入死循环了还是怎么的,我只统计第一、二、三个观测的时候(这三个观测seg1 到seg10中,每个观测都只有两个值,其余为空),非常快,可以准确计算,但当统计到第四个观测(有三个seg值)的时候,程序就一直在运行了。
请问这个程序哪里出问题了,或者大家有没有比较好的方法啊?