BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Sir_Highbury
Quartz | Level 8

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? 

1 ACCEPTED SOLUTION

Accepted Solutions
stat_sas
Ammonite | Level 13

Please try this.

 

data want(keep=country);
set have;
if not find(strip(value_list),strip(country));
run;

View solution in original post

2 REPLIES 2
stat_sas
Ammonite | Level 13

Please try this.

 

data want(keep=country);
set have;
if not find(strip(value_list),strip(country));
run;

rogerjdeangelis
Barite | Level 11
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


hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1125 views
  • 0 likes
  • 3 in conversation