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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.