<?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: Keep a running lowest value by group in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685463#M207887</link>
    <description>Ah this is brilliant and the perfect solution for what I wanted to do after this step was figured out. I can't believe how close I was and how simple it ended up being. Thank you so much!</description>
    <pubDate>Mon, 21 Sep 2020 15:17:48 GMT</pubDate>
    <dc:creator>lukesirakos</dc:creator>
    <dc:date>2020-09-21T15:17:48Z</dc:date>
    <item>
      <title>Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685113#M207739</link>
      <description>&lt;P&gt;I am trying to write some code that would go by group and row by row and determine if at each row if the current value is the lowest in the group. If so it would keep that value until it either reaches a lower value or gets to the next group. I have tried various retain and lags with if statements but I can't seem to come to the correct way of doing this. Any help is greatly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An example of data is below where running_min is the outcome I am looking for:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;group&lt;/TD&gt;&lt;TD&gt;amount&lt;/TD&gt;&lt;TD&gt;running_min&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;a&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;b&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the test data I am working with&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Code for test data */
data test;
input group $ amount;
cards;
a 10
a 9
a 9
a 8
a 7
a 6
a 5
a 9
a 10
b 100
b 20
b 35
b 45
b 10
b 50
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Sep 2020 21:22:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685113#M207739</guid>
      <dc:creator>lukesirakos</dc:creator>
      <dc:date>2020-09-18T21:22:48Z</dc:date>
    </item>
    <item>
      <title>Re: Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685114#M207740</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input group	$ amount;*	running_min;
cards;
a	10	10
a	9	9
a	9	9
a	8	8
a	7	7
a	6	6
a	5	5
a	9	5
a	10	5
b	100	100
b	20	20
b	35	20
b	45	20
b	10	10
b	50	10
;

data want;
 do until(last.group);
  set have;
  by group;
  running_min=min(running_min,amount);
  output;
 end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Sep 2020 21:27:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685114#M207740</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-18T21:27:12Z</dc:date>
    </item>
    <item>
      <title>Re: Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685116#M207742</link>
      <description>&lt;P&gt;Well that was certainly easier than I was making it and a very fast reply, thank you so much!&lt;/P&gt;</description>
      <pubDate>Fri, 18 Sep 2020 21:31:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685116#M207742</guid>
      <dc:creator>lukesirakos</dc:creator>
      <dc:date>2020-09-18T21:31:48Z</dc:date>
    </item>
    <item>
      <title>Re: Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685152#M207755</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   set test;
   by group;
   if first.group then running_min=.;
   running_min=min(running_min,amount);
   retain running_min;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 19 Sep 2020 06:57:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685152#M207755</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-09-19T06:57:53Z</dc:date>
    </item>
    <item>
      <title>Re: Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685179#M207772</link>
      <description>&lt;P&gt;Try&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  by group;
  current_min = ifn ( first.group, amount, min(amount,current_min) );
  retain current_min;  
run;&lt;/PRE&gt;</description>
      <pubDate>Sat, 19 Sep 2020 11:27:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685179#M207772</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-09-19T11:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: Keep a running lowest value by group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685463#M207887</link>
      <description>Ah this is brilliant and the perfect solution for what I wanted to do after this step was figured out. I can't believe how close I was and how simple it ended up being. Thank you so much!</description>
      <pubDate>Mon, 21 Sep 2020 15:17:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-a-running-lowest-value-by-group/m-p/685463#M207887</guid>
      <dc:creator>lukesirakos</dc:creator>
      <dc:date>2020-09-21T15:17:48Z</dc:date>
    </item>
  </channel>
</rss>

