Suppose I have a library of SAS datasets that are updated regularly, and I use those datasets to create new analysis datasets for each update. I want to store those new analysis datasets in archived folders. Is it possible to have SAS create a folder in my code, or do I have to manually create the folder and then tell SAS where to store the data?
For example, let's say that I have my base datasets stored in C:\Studies\DrugA\Protocol1\Data. And suppose that I am outputting my analysis data into the following directory: C:\Studies\DrugA\Protocol1\AnalysisDatasets. However, I want to archive them, so I will have a new subfolder for each date I run the data, so I might have the following folders:
C:\Studies\DrugA\Protocol1\AnalysisDatasets\2013-01-01
C:\Studies\DrugA\Protocol1\AnalysisDatasets\2013-02-10
C:\Studies\DrugA\Protocol1\AnalysisDatasets\2013-02-17
C:\Studies\DrugA\Protocol1\AnalysisDatasets\2013-04-11
etc.
Is there a way to set up SAS code to create a folder based on the date the program is run, or do I have to manually create the folder and then change the LIBNAME statement in my code?
Yes, Use the dcreate() function with a macro variable for the date.
Hi:
I think it can, but we just run a DOS command to do it: Here is a sample doing a file move.....
%let cmd = MOVE "&prefix.\From\File.txt" "&prefix.\Archive\File.txt";
data _null_;
option noxwait;
X &movecmd;
run;
Yes, Use the dcreate() function with a macro variable for the date.
Live can be that easy when it is done automatic
SAS trick: get the LIBNAME statement to create folders for you - The SAS Dummy
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.