BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
arjunascagnetto
Fluorite | Level 6
data import;
	infile datalines;
	input id "var-1"n $ "var'g"n $ "var % of"n;
datalines;
1 d e 23
2 f g 34
3 g k 45
;;;;


proc contents data=import noprint varnum out=varlist ;

proc sql noprint;
	select name into :mylist separated by ' ' from varlist where type = 2;

proc freq data=import;
	tables &mylist.;
run;

The question is easy. How can i make this code works ? The problems are the special character inside the mylist macro variable.

 

thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
snoopy369
Barite | Level 11

You can use the NLITERAL function here.  I also simplify by using DICTIONARY.COLUMNS, but you can do the same in the PROC CONTENTS output.

 


proc sql;
	select nliteral(name)
      into :mylist separated by ' ' 
      from dictionary.columns
      where  memname='IMPORT' and type='char'
	;
quit;

View solution in original post

4 REPLIES 4
snoopy369
Barite | Level 11

You can use the NLITERAL function here.  I also simplify by using DICTIONARY.COLUMNS, but you can do the same in the PROC CONTENTS output.

 


proc sql;
	select nliteral(name)
      into :mylist separated by ' ' 
      from dictionary.columns
      where  memname='IMPORT' and type='char'
	;
quit;
SASKiwi
PROC Star

Why make life hard for yourself by defining variable names containing special characters? If there is no real business need for them then it is a lot easier just to use "standard" variable names. Remember you can define labels for SAS variables that contain special characters if they are required for reporting.

arjunascagnetto
Fluorite | Level 6
of course this is a simplificatin of a real problem OF COURSE!
SASKiwi
PROC Star

Perhaps if you explained the real problem, we could offer advice on that.

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
  • 4 replies
  • 1304 views
  • 4 likes
  • 3 in conversation