BookmarkSubscribeRSS Feed
laura_2
Calcite | Level 5

Hello,

 

With proc freq (or another proc), is there a way to only print the counts for a certain value of a variable? I have 30+ variables and for each of those variables, I want to know how many observations in my sample had a value of 0.

 

Thanks!

Laura

1 REPLY 1
ballardw
Super User

One basic approach to count a specific value for a variable with Proc Freq;

proc freq data=sashelp.class;
   where sex='F';
   tables sex;
run;

Which would require 30 calls to proc freq.

 

If there are not many potential values involved for any of the variables (less than 10 values) I would likely just dump them all into a single proc freq call an look.

 

Or perhaps something like:

data need;
   set have;
   array v <list of your thirty variables>;
   do i= 1 to dim(v);
      variable = vname(v[i]);
      if v[i]=0 then output;
   end;
   keep variable;
run;

proc freq data=need;
   tables variable;
run;
  

The count of variable is how many times it appeared as a 0 in the source data set. Note: if you have a mix of character and numeric variables this won't work as an array can only have variables of one type. So if you actually have some character "0" you would split the variables between two differently named arrays and the character comparison would be for "0" instead.

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1438 views
  • 1 like
  • 2 in conversation