Hi All,
is it possible to quote each values in a macro variable separately?
For example, I have a macro variable %let test = a b c;
I would like to use the test macro variable values in a character array for initialization. Character array needs a quoted value for initialization. is it possible to use the test macro variable values in a character array initialization and quote individual values to satisfy character array requirements?
I would like to have something like this: array sample(3) $ 2 (&test.); in this piece of code the test macro variable is not quoted for individual values so it throws an error.
Thanks in advance for your help.
Saravanan
Try
%let y=%UNQUOTE(%str(%')%qsysfunc(tranwrd(&x,%str( ),' '))%str(%')) ;
Richard
%let x=a b c;
%let y=%str(%')%qsysfunc(tranwrd(&x,%str( ),' '))%str(%') ;
%put x=&x y=&y ;
x=a b c y='a' 'b' 'c'
Thank you for your reply. It seems to quote the values. But when i use it in array it throws an error.
for example:from your above macro example, array test(3) $2 (&y.); This piece of code throws an error.
Try
%let y=%UNQUOTE(%str(%')%qsysfunc(tranwrd(&x,%str( ),' '))%str(%')) ;
Richard
Thank you so much. This works fine.
Saravanan
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.