BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Linlin
Lapis Lazuli | Level 10

After I ran the code below, macro variable &mnew=a,b,c.

How can I get &mnew=’a’,’b’,’c’ by modifing my code.

Thanks - Linlin

data have;

  input c_id $;

  cards;

  a

  b

  c

   ;

data _null_;

  set have end=last;;

  length new $ 30;

retain new;

new=catx(',',new,c_id);

if last then

call symputx('mnew',new);

run;

%put &mnew;

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

If you can use double quote characters instead of single quote then use the QUOTE() function.

new=catx(',',new,quote(trim(c_id)));

If you need to use single quotes then

new=catx(',',new,"'"||trim(c_id)||"'");

View solution in original post

2 REPLIES 2
Tom
Super User Tom
Super User

If you can use double quote characters instead of single quote then use the QUOTE() function.

new=catx(',',new,quote(trim(c_id)));

If you need to use single quotes then

new=catx(',',new,"'"||trim(c_id)||"'");
Linlin
Lapis Lazuli | Level 10

Hi Tom,

Thank you very much!!! - Linlin

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
  • 982 views
  • 0 likes
  • 2 in conversation