Get dataset name as character string

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Get dataset name as character string

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. 


Accepted Solutions
Solution
‎06-20-2016 09:14 AM
Super User
Posts: 7,436

Re: Get dataset name as character string

[ Edited ]

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.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
Solution
‎06-20-2016 09:14 AM
Super User
Posts: 7,436

Re: Get dataset name as character string

[ Edited ]

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.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
New Contributor
Posts: 2

Re: Get dataset name as character string

Thanks for quick response, this worked. Thanks also for explaining about how macro language works. I didn't realize it was purely text processing
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 299 views
  • 0 likes
  • 2 in conversation