Hi, everyone,
I try to use "call symput" do the following step,
I want to do:
data test;
call symput("test_name", "Kid's First Test");
run;
%put &test1;
but I don't think in my code the "call symput" can deal with a string with a " ' ".
Any help? thanks.
Hi,
Actually, CALL SYMPUT doesn't mind the unmatched single quote (since it is inside double quotes). But it cause problems for the %PUT statement.
If you wrote
%put Kid's First Test ;
That apostrophe would look to SAS like an unmatched single quote, and cause problems.
When &test_name resolves to that value, the single quote causes the same problems.
To avoid the problems, you mask the apostrophe by using macro quoting functions.
For example:
%put %bquote(&test_name) ;
or
%put %superq(test_name) ;
HTH,
--Q.
Hi,
Actually, CALL SYMPUT doesn't mind the unmatched single quote (since it is inside double quotes). But it cause problems for the %PUT statement.
If you wrote
%put Kid's First Test ;
That apostrophe would look to SAS like an unmatched single quote, and cause problems.
When &test_name resolves to that value, the single quote causes the same problems.
To avoid the problems, you mask the apostrophe by using macro quoting functions.
For example:
%put %bquote(&test_name) ;
or
%put %superq(test_name) ;
HTH,
--Q.
When the text is resolved you need to be sure that text does not cause errors. Typically that is done with quoting functions %SUPERQ %BQUOTE etc.
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.