Hi All,
I need help with some code using either if, then, else, or an array.
I have a data set with many medication fields (wide data set). They are labeled medication1-medication29. I want to create a new variable called "code" that is equal to 1, if any of the 29 medications = 258. Then if medications =225 or 265 then code =2.
Here is some sample code I was playing with:
if (medication1 or medication2 or medication3 or medication4 or medication5...medication29)=258 then code=1;
else if (medication1 or medication2 or medication3 or medication4 or medication5...medication29)=225 or (medication1 or medication2 or medication3 or medication4 or medication5...medication29)=265 then code=2;
...
Thanks!
Sarah
Look up the WHICHN or WHICHC functions depending on if your variable is character or numeric.
Assuming Numeric:
array med(29) medication1-medication29;
if whichn(258, of med(*))>0 then code=1;
else if (whichn(225, of med(*))>0 OR whichn(265, of med(*))>0) then code=2;
Look up the WHICHN or WHICHC functions depending on if your variable is character or numeric.
Assuming Numeric:
array med(29) medication1-medication29;
if whichn(258, of med(*))>0 then code=1;
else if (whichn(225, of med(*))>0 OR whichn(265, of med(*))>0) then code=2;
Just to add, with a do loop over your codes, you don't need all the conditional code either:
data have;
infile datalines;
input medication1-medication5;
datalines;
258 34 45 12 67
56 78 45 23 12
78 76 75 225 5
;
run;
data want;
set have;
array med{5} medication1-medication5;
c=1;
do i=258,225,657,234,123,897,445;
if whichn(i,of med(*))>0 then code=c;
c=c+1;
end;
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.