Dear experts,
assuming the following data set "have":
data have0;
country="BU"; output;
country="JP"; output;
country="US"; output;
run;
data have1;
value_list="US_ UK _JP NW"; output;
value_list="US_ UK _JP NW"; output;
value_list="US_ UK _JP NW"; output;
run;
data have; merge have0 have1 ;run;
I would like to obtain the following one:
data want
country="BU"; output;
run;
which is the most short, understandable and elegant way?
Please try this.
data want(keep=country);
set have;
if not find(strip(value_list),strip(country));
run;
Please try this.
data want(keep=country);
set have;
if not find(strip(value_list),strip(country));
run;
HAVE
data have0;
country="BU"; output;
country="JP"; output;
country="US"; output;
run;
/*
Up to 40 obs WORK.HAVE0 total obs=3
Obs COUNTRY
1 BU
2 JP
3 US
*/
data have1;
value_list="US_ UK _JP NW"; output;
value_list="US_ UK _JP NW"; output;
value_list="US_ UK _JP NW"; output;
run;
/*
Up to 40 obs WORK.HAVE1 total obs=3
Obs VALUE_LIST
1 US_ UK _JP NW
2 US_ UK _JP NW
3 US_ UK _JP NW
*/
WANT
Up to 40 obs WORK.WANT total obs=1
Obs COUNTRY
1 BU
SOLUTION
* if the list does not change;
data mrg;
merge have0 have1;
if index(valuelist,country)=0 then output;
run;quit;
Up to 40 obs WORK.MRG total obs=1
Obs COUNTRY VALUELIST
1 BU US UK JP NW
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 save with the early bird rate—just $795!
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.