LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous (more recent) messageNext (less recent) messagePrevious (more recent) in topicNext (less recent) in topicPrevious (more recent) by same authorNext (less recent) by same authorPrevious page (November 2006, week 5)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Thu, 30 Nov 2006 22:49:04 -0500
Reply-To:     "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Subject:      Re: count within group

On Wed, 29 Nov 2006 09:12:35 -0800, T. C. <cychen9@GMAIL.COM> wrote:

>Hello, >I have a data set with 2 columns (group and id). >How could I count how many id showed up greater than once within >groups? > >Thanks ^o^ > >group id count >----- ---- ----- >1 A 2 >1 B >1 B >1 C >1 C >2 A 1 >2 A >2 B >2 C >2 D >3 A 2 >3 A >3 B >3 C >3 C >. >. >.

There are several ways. Here are two.

Load data:

data have; input group id $; cards; 1 A 2 1 B 1 B 1 C 1 C 2 A 1 2 A 2 B 2 C 2 D 3 A 2 3 A 3 B 3 C 3 C ;

PROCC SQL can do it in one statement:

proc sql; select group, count(*) as count from (select * from have group by group, id having count(*)>1 ) group by group ; quit;

Result:

group count --------------- 1 2 2 1 3 2

With other PROCs it takes two steps, as with:

proc summary data=have nway; class group id; output out=halfbaked; run;

proc freq data=halfbaked; where _freq_>1; table group / nocum nopercent; run;

Result:

group Frequency ------------------ 1 2 2 1 3 2


Back to: Top of message | Previous page | Main SAS-L page