Hi,
I have around 20 files in a library. I want to apply Proc means to all the files in the library using a macro than writing all 20 file names.
It should take all the file names automatically if I specify the library name.
Thanks
You can get all the dataset names in a library from sashelp.vtable and call execute should be straightforward. You also don't necessarily need a macro depending on your needs. Here's a demo - untested.
%let lname=WORK;
data dnames;
set sashelp.vtable;
where libname=upper("&lname");
run;
data _null_;
set dnames;
str=cats("proc means data=&lname..", memname, "; run;");
call execute(str);
run;
Hi,
Thanks.
The code is working.
I was actually looking to know about missing values in each dataset using proc means, NMISS option.
As cats function is removing the trailing and leading blanks I am unable to give the NMISS option.
Could you please look into it.
data _Null_;
set metfile;
str=cats("proc means data=&library..", memname, "nmiss", "; run;");
call execute(str);
run;
It is generating the statements
proc means data=TASK3.DEMOSSUBMITnmiss; run;
ERROR: File TASK3.DEMOSSUBMITNMISS.DATA does not exist.
where Nmiss is mixing up with the dataset name.
cool. Its Working.
Thanks.
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.