<?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 How to locate a minimum value by group in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45394#M9383</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Try : &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table min_x_by_gs as&lt;/P&gt;&lt;P&gt;select g, x, (x=min(x))+(count(x)=1) as min_x_by_g&lt;/P&gt;&lt;P&gt;from min_ex&lt;/P&gt;&lt;P&gt;group by g;&lt;/P&gt;&lt;P&gt;select * from min_x_by_gs;&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>Tue, 27 Mar 2012 19:36:33 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2012-03-27T19:36:33Z</dc:date>
    <item>
      <title>How to locate a minimum value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45393#M9382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;﻿﻿﻿﻿data min_ex;&lt;/P&gt;&lt;P&gt;input g $ x; &lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;g1 4&lt;/P&gt;&lt;P&gt;g2 3&lt;/P&gt;&lt;P&gt;g2 7&lt;/P&gt;&lt;P&gt;g2 2&lt;/P&gt;&lt;P&gt;g3 8&lt;/P&gt;&lt;P&gt;g4 10&lt;/P&gt;&lt;P&gt;g4 2&lt;/P&gt;&lt;P&gt;g4 9&lt;/P&gt;&lt;P&gt;g4 7&lt;/P&gt;&lt;P&gt;g5 9&lt;/P&gt;&lt;P&gt;g6 1&lt;/P&gt;&lt;P&gt;g6 8&lt;/P&gt;&lt;P&gt;g6 2&lt;/P&gt;&lt;P&gt;g6 9&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have to create a variable(say, min_x_by_g) which indicates that if the value of x is a minimum within the group g, the ﻿﻿min_x_by_g has the value of 1, otherwise 0. Plus, if there is only one observation within a group (for example, g1, g3, and g5 have one observation each.), the min_x_by_g variable has to have the value of 2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I do this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Mar 2012 19:07:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45393#M9382</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2012-03-27T19:07:08Z</dc:date>
    </item>
    <item>
      <title>How to locate a minimum value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45394#M9383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Try : &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table min_x_by_gs as&lt;/P&gt;&lt;P&gt;select g, x, (x=min(x))+(count(x)=1) as min_x_by_g&lt;/P&gt;&lt;P&gt;from min_ex&lt;/P&gt;&lt;P&gt;group by g;&lt;/P&gt;&lt;P&gt;select * from min_x_by_gs;&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>Tue, 27 Mar 2012 19:36:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45394#M9383</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-03-27T19:36:33Z</dc:date>
    </item>
    <item>
      <title>How to locate a minimum value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45395#M9384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you don't care about the order:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data min_ex;&lt;/P&gt;&lt;P&gt;input g $ x;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;g1 4&lt;/P&gt;&lt;P&gt;g2 3&lt;/P&gt;&lt;P&gt;g2 7&lt;/P&gt;&lt;P&gt;g2 2&lt;/P&gt;&lt;P&gt;g3 8&lt;/P&gt;&lt;P&gt;g4 10&lt;/P&gt;&lt;P&gt;g4 2&lt;/P&gt;&lt;P&gt;g4 9&lt;/P&gt;&lt;P&gt;g4 7&lt;/P&gt;&lt;P&gt;g5 9&lt;/P&gt;&lt;P&gt;g6 1&lt;/P&gt;&lt;P&gt;g6 8&lt;/P&gt;&lt;P&gt;g6 2&lt;/P&gt;&lt;P&gt;g6 9&lt;/P&gt;&lt;P&gt;;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=min_ex out=have;&lt;/P&gt;&lt;P&gt;by g x;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;by g x;&lt;/P&gt;&lt;P&gt;if first.g and last.g then min_x_by_g=2;&lt;/P&gt;&lt;P&gt;else if first.g then min_x_by_g=1;&lt;/P&gt;&lt;P&gt;else min_x_by_g=0;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Mar 2012 19:41:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45395#M9384</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-27T19:41:40Z</dc:date>
    </item>
    <item>
      <title>How to locate a minimum value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45396#M9385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I actually like PG's better, but here's a similar approach using a case instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql; create table test as&lt;/P&gt;&lt;P&gt;select g, x, &lt;/P&gt;&lt;P&gt;case&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when count(x)=1 then 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when min(x)=x then 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else 0&lt;/P&gt;&lt;P&gt;end as min_x_by_g&lt;/P&gt;&lt;P&gt;from min_ex&lt;/P&gt;&lt;P&gt;group by g;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Mar 2012 20:03:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45396#M9385</guid>
      <dc:creator>Joel_d_w</dc:creator>
      <dc:date>2012-03-27T20:03:02Z</dc:date>
    </item>
    <item>
      <title>How to locate a minimum value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45397#M9386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually, if you do want to preserve the original dataset order then you must do your own remerge as in :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table min_x_by_gs as&lt;/P&gt;&lt;P&gt;select M.g, x, (x=minX)+(n=1) as min_x_by_g&lt;/P&gt;&lt;P&gt;from min_ex as M inner join &lt;/P&gt;&lt;P&gt;(select g, min(x) as minX, count(*) as n from min_ex group by g) as S&lt;/P&gt;&lt;P&gt;on M.g=S.g;&lt;/P&gt;&lt;P&gt;select * from min_x_by_gs;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try adding "g1 3" as the last line of min_ex to see the difference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Mar 2012 20:21:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-locate-a-minimum-value-by-group/m-p/45397#M9386</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-03-27T20:21:54Z</dc:date>
    </item>
  </channel>
</rss>

