BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Barite | Level 11

Can I ouput Weighted Frequency and other values from a PROC SURVEYFREQ table?


I am doing a 3 way comparison using PROC SURVEYFREQ - TABLES flag*year*age_cat*injury;


This produces a table w/ the frequency of injuries in each age category (i.e. age_cat)  by year. Ulitmately, I want an outputted dataset with the Weighted Freqency and Percent for injury for each age category and year. 


My ideal output would look like this:


year      age_cat    weighted frequency  percent

2002     0-2               125,000                      5.34

2002     3-10             127,000                      x.xx

2002     11-16           145,000                      x.xx

2002     17-21           115,000                      x.xx

2003     0-2               155,000                      7.34

2003     3-10             177,000                      x.xx

2003     11-16           115,000                      x.xx

2003     17-21           105,000                      x.xx




Super User

What exactly are you having trouble with then?

Barite | Level 11

I don't know the correct syntax. I've never used PROC SURVEYFREQ to output to a dataset before...

Super User

You're switching to proc freq/surveyfreq, which one are you trying to run?

What have you tried? 

Barite | Level 11

I'm running PROC SURVEYFREQ. Sorry for the confusion. 


How do I identify, and output, the values I want? For example, how do I tell SAS I want the "Weighted Frequency" and the "Percent" in a new dataset named "want"? Are these listed as options in the TABLES statement? How do I specify that I want these values for the varialbe injury?


Something like this?


Tables flag*year*age_cat*injury / OUT=want, weightedfreq pct;


I have tried using ODS per these instructions, but I can only make it work for a oneway table. I don't know which keyword to use for what I DO want. I've tried "twoway", "fourway", "nway", each time the log states that output "twoway", for example, was not created.

ods output OneWay=WantTable;


Super User

Actually, I didn't find the answer here, you did. 

If possible post what code you ended up using and mark that as the correct solution. 

Barite | Level 11

ODS OUTPUT CrossTabs=want;



Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

What is Bayesian Analysis?

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.

Get the $99 certification deal.jpg



Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 2 in conversation