I need a SAS code where Column B is run against Column A, need to keep values where column B = “red” If column B value for all equal column A value has no “red” variable, keep “blue” ex:
A B
ABC12 red
ABC12 blue
ABC12 green
ABC13 green
ABC13 blue
ABC13 blue
after code executed:
A B
ABC12 red
ABC13 blue
data have;
input A $ B $;
datalines;
ABC12 red
ABC12 blue
ABC12 green
ABC13 green
ABC13 blue
ABC13 blue
;
data want;
set have;
by A;
retain keep;
if first.A then keep = 0;
if B = "red" then do;
keep = 1;
output;
end;
else if B = "blue" then keep = keep;
else keep = 0;
if last.A and keep then output;
drop keep;
run;
I'm getting ABC12 red in my output, the ABC13 is not observed. Anyone have any tips?
Try this:
and read aboud DoW-loop in SAS, for example here.
An alternative would be to use
POINT=: