BookmarkSubscribeRSS Feed
smadlindl0
Calcite | Level 5

Hey! 

This is my code up to now:

 

proc freq data=123;
table issr_id;
where def=1;
run;

 

I want to know the total number of issr_id with the condition def=1.

But the Problem is, there are some issr_id with have more then one def=1.

 

How can I get the total number of issr_id with def=1, without issr_id with the same number are counted muliple times? 

 

 

Hope you get my question.

Thanks!

4 REPLIES 4
LinusH
Tourmaline | Level 20
Not sure what you actually will count the frequency on.
What does uniquely identifies row in the input table?
Data never sleeps
JediApprentice
Pyrite | Level 9

It sounds like you're trying to get a frequency of unique issr_ids. Am I correct in assuming this? If so, before you do the proc freq, you could use PROC SQL and select distinct issr_ids, or a datastep and use by group processing to filter out issr_ids that are identical. Hope this helps.

 

Astounding
PROC Star

It sounds like you are looking for just a single number as the output.  If so, this might do it:

 

proc sql;

select count(distinct(issr_id)) from have where def=1;

quit;

 

 

Ksharp
Super User

Then pick up the first obs wthin each group firstly.

 

proc sort data=123 out=_123 nodupkey;
 by def;
run;

proc freq data=_123;
table issr_id;
where def=1;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 4 replies
  • 1790 views
  • 0 likes
  • 5 in conversation