If your data is representative of your actual problem, you can do like this
data test;
input id $ group condition1 condition2;
datalines;
a 1 123 9
b 1 123 5
c 1 234 7
d 0 456 8
e 0 123 8
f 0 234 9
;
run;
data want(drop=i);
set test;
array _1{0:99, 0:999} _temporary_;
array _2{0:99, 0:999} _temporary_;
do until (lr1);
set test end=lr1;
_1[group, condition1]=1;
_2[group, condition2]=1;
end;
do until (lr2);
set test end=lr2;
dummy1=0; dummy2=0;
do i=0 to 99;
dummy1=max(dummy1, (_1[i, condition1]=1 & group ne i));
dummy2=max(dummy2, (_2[i, condition2]=1 & group ne i));
end;
output;
end;
run;
Result:
id group condition1 condition2 dummy1 dummy2
a 1 123 9 1 1
b 1 123 5 1 0
c 1 234 7 1 0
d 0 456 8 0 0
e 0 123 8 1 0
f 0 234 9 1 1