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!!
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.