I have a very simple program that reads in the contents of all the .csv files in a Windows directory. That part of the program works fine.
I would like to add the file name to each record.
The problem I have is the variable fullfilename contains only 'C:\Users' rather than the full name. I have verified this with PUT statements.
In the log, SAS correctly identifies the full path and name and the proper data is imported but the ticker field (to wihich I tried to assign the parsed filename) is blank, as is the fullfilename field.
Thanks for your help!
Using Windows 10 and SAS 9.4 in Enterprise Guide
data ticker_files;
infile 'c:\Users\tparrent\Documents\SandP 500 Stock History\daily\table_*.csv'
FILENAME=fullfilename
DELIMITER=','
FIRSTOBS=1;
put fullfilename;
do until(last);
input dateint unknown open high low close volume;
ticker = scan(scan(fullfilename,-1,'_'),1,'.');
output;
end;
make sure to specify the length as well.
length fullFileName sourceName $256.;
When you use the FILENAME you need to actually store it, I don't see that in your code, but it doesn't look complete either....
This is what you'd add and you should have a variable called sourceFile in your dataset. I don't even think fullFileName would be outputted to your dataset otherwise.
sourceFile = fullFileName;
I tried your sugestions and sourceFileName still contains only 'C:\Users'
I did post the entire code and it does run and import the data from the files
make sure to specify the length as well.
length fullFileName sourceName $256.;
LENGTH fullfilename $256.; did the trick!
Thank you very much Reeza. I now understand something beyond the specific problem - don't get careless with variables!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.