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!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.