BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I have a macro variable:

%let x = a b c d e f;

I want to use this in a couple of ways:

1: In the Keep statement - Data test; set indata(keep=&x.);

2. In the subset: Data test; set indata; if quest in(&x.);

for the scenario 2 I would need the string in %let x quoted, so it should be
%let x="a" "b" "c" "d" "e" "f";

Is there a way in SAS, I can place the quotes in datastep around the list of these macro variable values.

thanks for your help
2 REPLIES 2
deleted_user
Not applicable
Hi,

prepare 2. macro variable

e.g.:

%let x =CUST BAB2 BAB3;

%let x2 = %sysFunC(compress(%BQUOTE(") %sysFunC(tranwrd(&x, %str( ), ",")) %BQUOTE(")));
%PUT &x2;

result:

"CUST","BAB2","BAB3"

M.
deleted_user
Not applicable
Thank you very much. The solution you provided worked perfect.

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore 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
  • 2167 views
  • 0 likes
  • 1 in conversation