You're welcome.
@nanmz wrote:
why did you create temporary variables in order to get the desired output?
Good question. My previous approach was:
data want(drop=_i);
set have;
flag=0;
do _i=2 to length(x);
if abs(input(char(x,_i),1.)-input(char(x,_i-1),1.))>1 then do;
flag=1;
leave;
end;
end;
run;
Obviously, this is simpler code. What I didn't like about it was that it extracts most of the digits twice. More precisely: For a digit string of length n it evaluates 2n−2 expressions of the form input(char(...)...), as opposed to n with the version using the temporary array. So, the intention was to provide (hopefully) more efficient code, but I haven't measured its performance yet. Of course, if your HAVE dataset is small and the strings are short, there will be no significant performance difference, if any.
... View more