<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: count within groups in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121021#M33376</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sophia, if I understood your question correctly, Haikuo's query doesn't quite give the right answer. It counts the proportion of statuses that are either 0 or one, it doesn't count the proportion of &lt;STRONG&gt;groups&lt;/STRONG&gt; with either statuses. In fact, it doesn't provide the expected answer to question 2. I propose an alternative query :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input ID $ Group $ Status;&lt;BR /&gt;datalines;&lt;BR /&gt;&amp;nbsp; 1A A 1&lt;BR /&gt;&amp;nbsp; 2A A .&lt;BR /&gt;&amp;nbsp; 3A A .&lt;BR /&gt;&amp;nbsp; 1B B 0&lt;BR /&gt;&amp;nbsp; 2B B .&lt;BR /&gt;&amp;nbsp; 1C C 0&lt;BR /&gt;&amp;nbsp; 1D D 1&lt;BR /&gt;&amp;nbsp; 2D D 1&lt;BR /&gt;&amp;nbsp; 3D D .&lt;BR /&gt;&amp;nbsp; 1E E .&lt;BR /&gt;&amp;nbsp; 2E E 0&amp;nbsp; &lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title "PG's query";&lt;BR /&gt;select count(group) as nbGroups,&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum(groupStatus=0)/count(groupStatus) as pct_No format=percent7.1,&lt;BR /&gt;&amp;nbsp; sum(groupStatus=1)/count(groupStatus) as pct_Yes format=percent7.1&lt;BR /&gt;from (select group, max(status) as groupStatus, count(ID) as n from have group by group)&lt;BR /&gt;where n &amp;gt;= 2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title "Haikuo's query";&lt;BR /&gt;select count(distinct group) as ctg, &lt;BR /&gt;&amp;nbsp; sum(status=0)/count(status) as Percent_0 format=percent10.2,&lt;BR /&gt;&amp;nbsp; sum(status=1)/count(status) as Percent_1 format=percent10.2&amp;nbsp; &lt;BR /&gt;from have &lt;BR /&gt;where group in (&lt;BR /&gt;select group from have &lt;BR /&gt;group by group&lt;BR /&gt;having count(id)&amp;gt;=2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 19 May 2012 03:33:01 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2012-05-19T03:33:01Z</dc:date>
    <item>
      <title>count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121017#M33372</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;SAS Community-&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;I would like to know how I can perform preliminary analyses (e.g. frequencies, mean) within groups in my dataset.&amp;nbsp;&amp;nbsp; For example, I have the below following dataset.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;data have;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;input&amp;nbsp;&amp;nbsp; ID $&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Group $&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;datalines;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Assume the following points.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;1. Status is a binary variable (1=yes, 0=no). &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;2. Assume that&amp;nbsp; where status = ., that group takes on the status value of whatever value is listed (i.e. status - group A =1, status - group E = 0).&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;3. Even if there are two or more status values per group (i.e. Group D), the value for the entire group is what is listed assuming no discordant status values within groups (i.e. status - group D = 1).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;I would like to answer two questions.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Q1) How many groups are present with a count ge 2 ?&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Q2) Of those groups with a count ge 2, what is the frequency of the status values?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;For this example dataset, the answers to those two questions would be:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;A1) 4 groups (A, B, D, E)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;A2) Status 0 = 2 (50%), &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;Status 1 = 2 (50%); &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I hope this makes sense!&amp;nbsp; Thank you in advance for your help!&amp;nbsp; This one has been causing me some headaches!&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2012 19:01:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121017#M33372</guid>
      <dc:creator>sophia_SAS</dc:creator>
      <dc:date>2012-05-18T19:01:44Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121018#M33373</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to look at proc freq for #1.&lt;/P&gt;&lt;P&gt;Proc freq data=have;&lt;/P&gt;&lt;P&gt;table group/out=more_than_2 (where=(count&amp;gt;=2));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For 2 you first need to fill in the missing values for the status (use a retain statement or lag value).&lt;/P&gt;&lt;P&gt;Then run a proc freq such as:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc freq data=have;&lt;/P&gt;&lt;P&gt;table group*status/out=more_than_2 (where=(count&amp;gt;=2));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2012 19:37:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121018#M33373</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2012-05-18T19:37:24Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121019#M33374</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How about some proc SQL:&lt;/P&gt;&lt;P&gt; data have;&lt;/P&gt;&lt;P&gt;input ID $ Group $ Status;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1A A 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2A A .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 3A A .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1B B 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2B B .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1C C 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1D D 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2D D 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 3D D .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1E E .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2E E 0&amp;nbsp; &lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select count(distinct group) as ctg, sum(status=1)/count(status) as Percent_1 format=percent10.2,&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; sum(status=0)/count(status) as Percent_0 format=percent10.2 &lt;/P&gt;&lt;P&gt;from have &lt;/P&gt;&lt;P&gt;where group in (&lt;/P&gt;&lt;P&gt;select group from have &lt;/P&gt;&lt;P&gt;group by group&lt;/P&gt;&lt;P&gt;having count(id)&amp;gt;=2)&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2012 19:55:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121019#M33374</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-05-18T19:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121020#M33375</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks both methods are great.&amp;nbsp; The proc sql step is super! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2012 20:21:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121020#M33375</guid>
      <dc:creator>sophia_SAS</dc:creator>
      <dc:date>2012-05-18T20:21:36Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121021#M33376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sophia, if I understood your question correctly, Haikuo's query doesn't quite give the right answer. It counts the proportion of statuses that are either 0 or one, it doesn't count the proportion of &lt;STRONG&gt;groups&lt;/STRONG&gt; with either statuses. In fact, it doesn't provide the expected answer to question 2. I propose an alternative query :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input ID $ Group $ Status;&lt;BR /&gt;datalines;&lt;BR /&gt;&amp;nbsp; 1A A 1&lt;BR /&gt;&amp;nbsp; 2A A .&lt;BR /&gt;&amp;nbsp; 3A A .&lt;BR /&gt;&amp;nbsp; 1B B 0&lt;BR /&gt;&amp;nbsp; 2B B .&lt;BR /&gt;&amp;nbsp; 1C C 0&lt;BR /&gt;&amp;nbsp; 1D D 1&lt;BR /&gt;&amp;nbsp; 2D D 1&lt;BR /&gt;&amp;nbsp; 3D D .&lt;BR /&gt;&amp;nbsp; 1E E .&lt;BR /&gt;&amp;nbsp; 2E E 0&amp;nbsp; &lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title "PG's query";&lt;BR /&gt;select count(group) as nbGroups,&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum(groupStatus=0)/count(groupStatus) as pct_No format=percent7.1,&lt;BR /&gt;&amp;nbsp; sum(groupStatus=1)/count(groupStatus) as pct_Yes format=percent7.1&lt;BR /&gt;from (select group, max(status) as groupStatus, count(ID) as n from have group by group)&lt;BR /&gt;where n &amp;gt;= 2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title "Haikuo's query";&lt;BR /&gt;select count(distinct group) as ctg, &lt;BR /&gt;&amp;nbsp; sum(status=0)/count(status) as Percent_0 format=percent10.2,&lt;BR /&gt;&amp;nbsp; sum(status=1)/count(status) as Percent_1 format=percent10.2&amp;nbsp; &lt;BR /&gt;from have &lt;BR /&gt;where group in (&lt;BR /&gt;select group from have &lt;BR /&gt;group by group&lt;BR /&gt;having count(id)&amp;gt;=2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 May 2012 03:33:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121021#M33376</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-19T03:33:01Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121022#M33377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;PG,&lt;/P&gt;&lt;P&gt;Most of the times I 'd agree with you. However, according to my understanding of OP's intention, there will be 3 x'1's and 2 '0's before computing the percentage.&lt;/P&gt;&lt;P&gt;While I don't understand why you applied max(), what if there are '0' and '1' within the same group?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Well, ultimately it is up to OP to judge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my 2 cents,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 May 2012 13:49:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121022#M33377</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-05-19T13:49:12Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121023#M33378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You're right Haikuo, we perceive Sophia's request differently. Your answer was totally appropriate. What made me post an alternative was the fact that your results didn't match Sophia's expectations (A2). I wondered what was going on when Sophia wrote that your SQL step was super, without explaining the discrepancy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 May 2012 23:15:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121023#M33378</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-05-19T23:15:26Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121024#M33379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My code is long but it is easy to understand: &lt;SPAN style="color: #ff0000; font-size: 12pt;"&gt;Updated follow PG's comments, Thank you PG&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input ID $ Group $ Status;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1A A 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2A A .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 3A A .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1B B 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2B B .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1C C 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1D D 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2D D 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; 3D D .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1E E .&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2E E 0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table temp as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; select group,max(status) as status,count(group) as n&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by group&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; having n&amp;gt;1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select count(group) as groups,&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum(Status=0)/calculated groups as pct_No format=percent7.1,&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum(Status=1)/calculated groups as pct_Yes format=percent7.1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from temp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop table temp;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linlin' guery&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groups&amp;nbsp;&amp;nbsp; pct_No&amp;nbsp; pct_Yes&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 50.0%&amp;nbsp;&amp;nbsp;&amp;nbsp; 50.0%&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 May 2012 00:44:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121024#M33379</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-20T00:44:08Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121025#M33380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Haikuo,&lt;/P&gt;&lt;P&gt;in your code, count(status)=5 because the two '1's in group D. I believe count(status) should=4 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks - Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 May 2012 01:06:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121025#M33380</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-05-20T01:06:48Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121026#M33381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;PG and Hai.kuo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG is correct in interpreting my question 2 as it was to count the status values within groups - not count the individual values per se.&amp;nbsp; So the proportion I want use only includes the 2 - 1's and 2 - 0's.&amp;nbsp; Based on this, PG's code does work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I was able to successful apply Hai.kuo's code by simply adding a proc sort - nodupkey command before the proc sql.&amp;nbsp; (I am working with two datasets, 1 with the status values included and the other with just the remaining group members. So the proc sort-no dupkey eliminated instances where there were two values listed per group.)&amp;nbsp; I probably should have made that more clear in my OP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One other question though - in the last line of either codes "(having count(id)&amp;gt;=2)" - you indicate that the variable is ID.&amp;nbsp; Why not use the group variable?&amp;nbsp; I am looking for groups that have a count ge 2 and not IDs?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you so much for all over your help.&amp;nbsp; This was really a crucial part of my code and I couldn't seem to figure out how to solve it!&amp;nbsp; Go SAS community!&lt;/P&gt;&lt;P&gt;Sophia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 May 2012 11:33:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121026#M33381</guid>
      <dc:creator>sophia_SAS</dc:creator>
      <dc:date>2012-05-21T11:33:51Z</dc:date>
    </item>
    <item>
      <title>Re: count within groups</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121027#M33382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sophia,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'Group' instances is addressed by its' contents, 'id' seems to be good candidate as being non-missing. You can actually count the instances of certain 'group' by using structure like: sum(group='A'), however then you can't use 'by'&amp;nbsp; to automate the counts across different group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 May 2012 12:14:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/count-within-groups/m-p/121027#M33382</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-05-21T12:14:08Z</dc:date>
    </item>
  </channel>
</rss>

