BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Asesaton
Calcite | Level 5

I want to run a macro that takes a dataset, processes it, and outputs a new dataset with a that name depends on the name of the original dataset.

 

e.g something like this

 

%let data_in = my_data;
%let data_out = &data_in || '_processed'

 

But calling &data_in isn't really what I want to do, I would like call the dataset name as a character string.  Is this possible?

I've had a hunt through documentation and forums but can't find what I am looking for. 

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

Don't use quotes in macro language if you want to concatenate strings. Always keep in mind that macro language is most and foremost a text processing tool, and only knows the data type character.

Do it like this:

%let data_in=my_data;
%let data_out=&data_in._processed;

The dot after the &data_in terminates that particular macro variable reference.

 

PS if you use quotes in the right side of a %let, they will become part of the value stored in the macro variable, instead of being treated as string delimiters.

View solution in original post

2 REPLIES 2
Kurt_Bremser
Super User

Don't use quotes in macro language if you want to concatenate strings. Always keep in mind that macro language is most and foremost a text processing tool, and only knows the data type character.

Do it like this:

%let data_in=my_data;
%let data_out=&data_in._processed;

The dot after the &data_in terminates that particular macro variable reference.

 

PS if you use quotes in the right side of a %let, they will become part of the value stored in the macro variable, instead of being treated as string delimiters.

Asesaton
Calcite | Level 5
Thanks for quick response, this worked. Thanks also for explaining about how macro language works. I didn't realize it was purely text processing
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
  • 2 replies
  • 2918 views
  • 0 likes
  • 2 in conversation