Hi,
I need to write a program to create a table with 2 columns. One column lists all the datasets names in a folder, one column lists the number of observations for the corresponding dataset. Is there an easy way to do it? My code worked but it is looks not efficient and not neat enough.
Thank you.
Or similar to @Reeza's approach if looking for SAS datasets.
Proc sql; create table want as select memname, nobs from dictionary.tables where libname='LIBRARY' ; run;
The library name should be in uppercase as that is the way SAS stores the information.
If the folder doesn't currently have a library associated then run a libname statement pointing to that library before the Proc SQL.
I use the dictionary table version as I have a moderate number of permanently libraries and the SQL version runs notably faster than the datastep version for most tasks.
This will send the various things you may request from the dictionary.tables to the Log:
Proc sql; describe table dictionary.tables ; run;
Hi @SSH2 Can you please share your code that you deem inefficient? I think it's a good practice to eliminate duplicate redundancies to avoid somebody to come up with the same code you wrote. Thank you
Are these SAS data sets?
If so use SASHELP.VTABLE.
data want;
set sashelp.vtable;
where libname='WORK';
keep libname memname nobs;
run;
Or similar to @Reeza's approach if looking for SAS datasets.
Proc sql; create table want as select memname, nobs from dictionary.tables where libname='LIBRARY' ; run;
The library name should be in uppercase as that is the way SAS stores the information.
If the folder doesn't currently have a library associated then run a libname statement pointing to that library before the Proc SQL.
I use the dictionary table version as I have a moderate number of permanently libraries and the SQL version runs notably faster than the datastep version for most tasks.
This will send the various things you may request from the dictionary.tables to the Log:
Proc sql; describe table dictionary.tables ; run;
Thank you very much!!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.