BookmarkSubscribeRSS Feed
jerry898969
Pyrite | Level 9
I would like to create a macro variable based on a different macro variable is this possible? I need to use a part of the filename macro variable to create another one to use as a way to name my data set.

[pre]
%let filename = ABCDE1234 ;
%let path = c:\temp\ ;
%let filenm = substr("&filename.",1,5) ;

options symbolgen ;

filename indata "&path&filename..txt";


data &filenm ;
infile indata dsd truncover;
input num ?? @ ;
do while( num ne . );
output ;
input num ?? @ ;
end ;
run ;
[/pre]

This is the text from the log

[pre]
SYMBOLGEN: Macro variable FILENM resolves to substr("ABCDE1234",1,5)
544 data &filenm ;
NOTE: Line generated by the macro variable "FILENM".
1 substr("ABCDE1234",1,5)
-----------
22
ERROR 22-7: Invalid option name "ABCDE1234".

545 infile indata dsd truncover;
546 input num ?? @ ;
547 do while( num ne . );
548 output ;
549 input num ?? @ ;
550 end ;
551 run ;

NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds

[/pre]

Thank you for any help
2 REPLIES 2
darrylovia
Quartz | Level 8
You need to use a macro function not a data step function


%let filenm=%substr(&filename,1,5);

This should get what you are looking for
jerry898969
Pyrite | Level 9
darry,

That was it thanks so much for the quick reply.
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 1510 views
  • 0 likes
  • 2 in conversation