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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.