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
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.