BookmarkSubscribeRSS Feed
jort
Calcite | Level 5
Pardon the newbie question! Thru trial and error I've gotten to this statement:

%bquote(put) "%scan(&vars,&varn)" %scan(&vars,&varn);

which gives me output like:

PATID00136201

almost what I want, but I need it formatted as:

"PATID" : "00136201"

Any help greatly appreciated!
2 REPLIES 2
jort
Calcite | Level 5
Ignore the original post. Found the trick. Replace original PUT with:

%scan(&vars,&varn)=compress(%scan(&vars,&varn),'"');
put q+(-1) "%scan(&vars,&varn)" q+(-1) ' : ' q+(-1) %scan(&vars,&varn) +(-1) q+(-1);

where q = '"'
SPR
Quartz | Level 8 SPR
Quartz | Level 8
Hello Jort,

It seems to me you can also use %put insted of datastep put. It produces the same result writing to the log. For example, like this:

%let v1=PATID;
%let v2=00136201;
%put "&v1." : "&v2.";

LOG:

"PATID" : "00136201"

Sincerely,
SPR

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