BookmarkSubscribeRSS Feed
mlapradd
Calcite | Level 5

I am having a Strange situation which I was hoping someone could explain why it is occurring.  I am trying to use a simple macro variable to count from 1 to 57 in order to import 57 files.

I initially was given files with the name "Simple_toothhistory_1" "Simple.....2" etc.

I used the variable j and had a working macro using "C:\location\Simple_toothhistory_&j..csv"

An issue was found with the files and they were re-converted into csv files with a new name "Prac1_simple_toothhistory" "Prac2_....."

etc. 

I tried to use the macro"C:\location\Prac&j_simple_toothhistory..csv"

but with no luck.  I also tried adding an additional underscore "C:\location\Prac_&j_simple_toothhistory..csv"

But this also did not work. 

I have at this point renamed all 57 files 😞  But I was hoping to understand why it is working at the end but not within the file name!

Thanks!!!

 

1 REPLY 1
Reeza
Super User

Add a period after the &J -> otherwise the compiler doesn't know where your macro variable name ends, so it won't resolve properly. 

 

ie you see:

 

"C:\location\Prac&j_simple_toothhistory..csv"

 

the compiler sees:

 

"C:\location\Prac&j_simple_toothhistory..csv"

 

Note the double period before the CSV name. One of those was for the macro variable to resolve properly but you didn't move it with the macro variable.

 

Correct:

 

"C:\location\Prac&j._simple_toothhistory.csv"

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
  • 1 reply
  • 1809 views
  • 2 likes
  • 2 in conversation