I have a proc freq step as follows:
proc freq data=test;
tables v1 v2/out=test_out;
run;
I want the proc freq outputs to be saved in a separate dataset like v1.sas, v2.sas. The step that I have above creates a dataset for only the last variable (v2).
Please help.
Regards
Why do you want the output to many tables, that really isn't very efficient either here or for future programming. Create one output dataset and use V1*V2 to get variables for each of the by groups, per:
You can then apply by group processing, or where clause out the required information.
It should do, I have no test data to run it on myself, and don't use freq that much so can't think off the top of my head. Try it and see what it gives you (or post test data).
The simple solution creates multiple output data sets:
proc freq data=test;
tables v1 / out=v1_out;
tables v2 / out=v2_out;
run;
If you have hundreds of variables, this can be automated with macro language.
There also may be ODS-based solutions.
Use the ODS table.
Proc freq data=have;
Table v1 v2;
ODS output onewayfreqs = want;
Run;
Here's an example to generate a nicely formatted table:
https://gist.github.com/statgeek/e0903d269d4a71316a4e
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.