I have this dataset (have) with number combinations in column b.
If column b contains the numbers 100, 200, 100 and 200, it should give the tag ="check".
If column b contains a combination of 100 and not 200, it should give no tag.
Can this be possible in one data step?
Code is below:
data have;
input a b :$32.;
cards;
1 100-100
2 300
3 200-100
4 300-300-300-100
5 200
;
run;
/*If b in ('100', '200') then tag = "check"*/
data want;
input a b :$32. tag $5.;
cards;
1 100-100 tag
2 300
3 200-100 tag
4 300-300-100
5 200 tag
;
run;
data have;
input a b :$32.;
cards;
1 100-100
2 300
3 200-100
4 300-300-300-100
5 200
;
run;
data want;
set have;
marker_100 = 0;
marker_else = 0;
do i = 1 to countw(b,'-');
if scan(b,i,'-') in ('100','200')
then marker_100 = 1;
else marker_else = 1;
end;
if marker_100 and not marker_else then tag = 'tag';
drop i marker_100 marker_else;
run;
data have;
input a b :$32.;
cards;
1 100-100
2 300
3 200-100
4 300-300-300-100
5 200
;
run;
data want;
set have;
marker_100 = 0;
marker_else = 0;
do i = 1 to countw(b,'-');
if scan(b,i,'-') in ('100','200')
then marker_100 = 1;
else marker_else = 1;
end;
if marker_100 and not marker_else then tag = 'tag';
drop i marker_100 marker_else;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.