Hello,
I wonder why this does not add double quotes to name string.
data _null_; set sashelp.class; put name; run; data _null_; set sashelp.class; put "||name||"; run;
You surround the expression
|| name ||
by quotes, which means sas willl treat it as a literal to be written by your put statemet.
Try
put name $quote10. ;
which applies the $quote format to name. Since name is 8 bytes, I use 10 as the size attribute of the $quote format.
Mark
You surround the expression
|| name ||
by quotes, which means sas willl treat it as a literal to be written by your put statemet.
Try
put name $quote10. ;
which applies the $quote format to name. Since name is 8 bytes, I use 10 as the size attribute of the $quote format.
Mark
@mkeintz Thank you. I was asking this question in reference to use of variable in CALL EXECUTE routine. In example below, memname is not treated as literal.
data _null_; set _dsets_; call execute ( 'proc print data=sugi30.' || trim(memname) || '(obs=50); title ''First 50 observations of data set ' || trim(memname) || '''; run;' ); run;
If you're trying to put quotes around the memname when it appears in the title, then use the put function, with $quote as 2nd argument, in the place where the variable memname appears in the title statement:
data _null_;
set _dsets_;
call execute
(
'proc print data=sugi30.' ||
trim(memname) ||
'(obs=50); title ''First 50 observations of data set ' ||
put(memname,$quote10.) || '''; run;'
) ;
run;
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.