<?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 MACRO SAS DO loop in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453767#M284091</link>
    <description>&lt;P&gt;For example, I have 3&amp;nbsp;months of data stacking like this, and this is what I want to ask. I want to create a new data set based on this one but in which I want to delete accounts having balance constantly below 100 threshold since month 1 and forward. And I would like to repeat the same process&amp;nbsp;for individual month #2, #3 until the end of of my data set. With that purpose, the code should only delete account 1D, 2A and 2D&amp;nbsp;for month 1 and account 4A for month 2. This is just an example represented what I want to do. My actual data is way bigger than this. It has at least 50 months of data so I am looking for a MACRO SAS DO loop that can help me perform what I would like to. Thanks a lot.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Account Number&lt;/TD&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Balance&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;600&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;780&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;650&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;336&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;296&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;250&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;525&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;630&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;95&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;128&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;130&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;157&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;530&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;115&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Thu, 12 Apr 2018 21:31:31 GMT</pubDate>
    <dc:creator>tampham92</dc:creator>
    <dc:date>2018-04-12T21:31:31Z</dc:date>
    <item>
      <title>MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453767#M284091</link>
      <description>&lt;P&gt;For example, I have 3&amp;nbsp;months of data stacking like this, and this is what I want to ask. I want to create a new data set based on this one but in which I want to delete accounts having balance constantly below 100 threshold since month 1 and forward. And I would like to repeat the same process&amp;nbsp;for individual month #2, #3 until the end of of my data set. With that purpose, the code should only delete account 1D, 2A and 2D&amp;nbsp;for month 1 and account 4A for month 2. This is just an example represented what I want to do. My actual data is way bigger than this. It has at least 50 months of data so I am looking for a MACRO SAS DO loop that can help me perform what I would like to. Thanks a lot.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Account Number&lt;/TD&gt;&lt;TD&gt;Month&lt;/TD&gt;&lt;TD&gt;Balance&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;600&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;780&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;650&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;336&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;296&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;250&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;525&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;630&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;95&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;128&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;130&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;157&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3C&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;145&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3D&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;530&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;115&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 12 Apr 2018 21:31:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453767#M284091</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-12T21:31:31Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453771#M284092</link>
      <description>&lt;P&gt;No macro needed. Something like this should work&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* UNTESTED CODE */

proc summary data=have;
    class account_number;
    var balance;
    output out=maxbal max=max_balance;
run;
proc sort data=have;
    by account_number;
run;
 /* Delete any account_number that has max_balance &amp;lt; 100 */
data want;
    merge have maxbal;
    by account_number;
    if max_balance&amp;lt;100 then delete;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 12 Apr 2018 21:51:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453771#M284092</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-12T21:51:46Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453835#M284093</link>
      <description>&lt;P&gt;Your rule does not make sense. Why would you delete A4 for month 2, when it has a balance of 125, which is &amp;gt; 100 AFAIK?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Only account 1D satisfies your rule for deleting.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 05:44:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453835#M284093</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-13T05:44:38Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453889#M284094</link>
      <description>&lt;P&gt;4A for month 2 before in month 3, that account dropped below 100 already, so I want to delete it.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 12:47:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453889#M284094</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T12:47:36Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453901#M284095</link>
      <description>&lt;P&gt;That's not your rule:&lt;/P&gt;
&lt;P&gt;I quote from your initial post:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;delete accounts having balance &lt;STRONG&gt;constantly below 100 threshold since month 1&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(emphasis by me)&lt;/P&gt;
&lt;P&gt;Please make up your mind and post a clear and correct rule.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 13:42:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453901#M284095</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-13T13:42:50Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453907#M284096</link>
      <description>&lt;P&gt;Sorry If I am not that clear. What I want is that for month 1, I want to delete all accounts having balance constantly below 100 since month 1. But then in month 2, I&amp;nbsp;&lt;SPAN&gt;want to delete all accounts having balance constantly below 100 since month&amp;nbsp;2, etc. Is it clear now?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 13:57:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453907#M284096</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T13:57:17Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453910#M284097</link>
      <description>&lt;P&gt;No. 4A is not &lt;STRONG&gt;constantly&lt;/STRONG&gt; below 100, as it has a value of 125 in month 2.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 14:02:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453910#M284097</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-13T14:02:34Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453919#M284098</link>
      <description>&lt;P&gt;Sorry I do apologize for that example. but pretty much this is what I wanna do. For individual snapshot, I want to delete accounts that staying below 100 since that particular snapshot&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 14:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453919#M284098</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T14:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453922#M284099</link>
      <description>&lt;P&gt;So, apparently I have misunderstood the requirements, and so the code I gave is not correct.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;let me make sure I have the requirements understood properly now.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You want to delete accounts where the values are always under 100&amp;nbsp;&lt;EM&gt;after the first month that the account appears&lt;/EM&gt;. The first month the account appears could be over 100, and we still delete the account if all subsequent months are under 100.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is that a correct understanding?&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 14:18:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453922#M284099</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-13T14:18:43Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453933#M284100</link>
      <description>&lt;P&gt;I want to delete accounts where the values are always under 100&amp;nbsp;after the month its value starts dropping below 100. So for account 4A example, since its value is above 100 in month 2, it should be kept in month 2 snapshot. But if its value keeps staying below 100 since month 3 (where its value dropped below 100), it should be deleted from the dataset since month 3 snapshot and in later subsequent months. So in your final data, you still see account 4A in month 2, but not in month 3 and forward. Hopefully this is clear. Please let me know if I need to clarify it more.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 14:40:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453933#M284100</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T14:40:02Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453936#M284101</link>
      <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;I want to delete accounts where the values are always under 100&amp;nbsp;after the month its value starts dropping below 100.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This is different than what I thought and different than previous explanations. So, if we have a longer time series and a certain account has values&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;60&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;we would include this account in month 1, include this account in month 2, include this account in month 3, but not include the account after month 3.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If the sequence of data is&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;60&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;then the account is always included. Is that right?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 14:48:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453936#M284101</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-13T14:48:19Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453945#M284102</link>
      <description>&lt;P&gt;I will try my best here. For your example,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;120&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;80&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;60&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For give those value in month #1, if the last 4 account have values going back above 100 in month #5,&amp;nbsp;I want to keep them in month 1, month 2, #3, #4 and #5 as long as its value above 100. but then if one of those starts dropping below 100 (for example in month #6) and constantly stay below until the end of series, then it should be deleted since month #6. Is that clear?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:05:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453945#M284102</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T15:05:55Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453947#M284103</link>
      <description>&lt;P&gt;Not clear at all.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why don't we delete the account at month 4? All the values are below 100 at month 4 and beyond.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:10:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453947#M284103</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-13T15:10:04Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453952#M284104</link>
      <description>&lt;P&gt;but if I do that, it may delete some accounts that may go above 100 in later months. cause if it goes above 100 in later months, I dont want to delete them in current months unless its value is always below 100 since current month.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:16:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453952#M284104</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T15:16:09Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453955#M284105</link>
      <description>&lt;P&gt;cause I want to model attrition rate. We dont care about accounts with balance below 100 dollars. But if we just simply deleted account with below 100 for each particular month, it will overstate attrition rate for that month. Because when accounts dropped below 100, it does not actually meant it leaves the bank. But right now by deleting those, it is pretty much I assume they leave the bank for that month (account balance &amp;lt; 100) but actually they do not.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:21:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453955#M284105</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T15:21:07Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453957#M284106</link>
      <description>&lt;P&gt;You know, at this point I'm still not clear on what you want, so I hope someone else can jump in and give you an answer.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:23:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453957#M284106</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-13T15:23:28Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453958#M284107</link>
      <description>&lt;P&gt;Thank a lot for your help anyway.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2018 15:26:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/453958#M284107</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-13T15:26:10Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/454365#M284108</link>
      <description>&lt;P&gt;I think I finally get what you want. Try this code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input account_nr $ month balance;
cards;
1A 1 90 
1B 1 500 
1C 1 600 
1D 1 80 
2A 1 300 
2B 1 200 
2C 1 75 
2D 1 780 
3A 1 650 
3B 1 90 
3C 1 336 
3D 1 296 
1A 2 250 
1B 2 525 
1C 2 630 
1D 2 60 
2A 2 90 
2B 2 95 
2C 2 125 
2D 2 80 
3A 2 300 
3B 2 145 
3C 2 300 
3D 2 128 
4A 2 125 
4B 2 150 
1A 3 45 
1B 3 130 
1C 3 150 
1D 3 50 
2A 3 50 
2B 3 157 
2C 3 100 
2D 3 60 
3A 3 150 
3B 3 300 
3C 3 145 
3D 3 530 
4A 3 90 
4B 3 115 
;
run;

proc sort data=have;
by account_nr month;
run;

/* set up a dataset that marks accounts for deletion,
   and the month where the deletion should start */
data deletes (keep=account_nr startmonth);
set have;
by account_nr;
retain flag startmonth;
if first.account_nr then flag = 0;
if balance &amp;lt; 100
then do;
  if not flag then startmonth = month;
  flag = 1;
end;
else flag = 0; /* reset when balance &amp;gt;= 100 */
if last.account_nr and flag then output;
run;

data want (drop=startmonth);
merge
  have (in=a)
  deletes (in=b)
;
by account_nr;
if a;
if not b or month &amp;lt; startmonth; /* no delete at all, or startmonth not yet reached */
run;

/* restore original order */
proc sort data=want;
by month account_nr;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note how I presented your original example data. Posting data in a data step allows people to easily and exactly recreate your example data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 07:51:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/454365#M284108</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-16T07:51:20Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/456581#M284109</link>
      <description>&lt;P&gt;Thank you so much for your help. This is exactly what I want. I really appreciate that. You are such a genius&lt;/P&gt;</description>
      <pubDate>Mon, 23 Apr 2018 16:09:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/456581#M284109</guid>
      <dc:creator>tampham92</dc:creator>
      <dc:date>2018-04-23T16:09:23Z</dc:date>
    </item>
    <item>
      <title>Re: MACRO SAS DO loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/456775#M284110</link>
      <description>&lt;P&gt;Then please mark the post that did it as the solution.&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2018 06:35:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/MACRO-SAS-DO-loop/m-p/456775#M284110</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-24T06:35:32Z</dc:date>
    </item>
  </channel>
</rss>

