<?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: &amp;quot;Normalize&amp;quot; values of a variable across a BY GROUP in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420906#M103558</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/124892"&gt;@Zeus_Olympous&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;If this is the case i.e.&amp;nbsp;multiple months with negative values always there will be future months with&amp;nbsp;double PMTs or triple PMTs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And how to identify which ones replace which?&lt;/P&gt;</description>
    <pubDate>Wed, 13 Dec 2017 17:30:43 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2017-12-13T17:30:43Z</dc:date>
    <item>
      <title>"Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420547#M103511</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the dataset HAVE, on 31/05/2017 there was &lt;U&gt;no&lt;/U&gt; PMT for id=101 (system automatically assigns negative values for the required amounts).&lt;/P&gt;&lt;P&gt;Subsequently id=101 paid the missing installments on&amp;nbsp;31/07/2017&amp;nbsp;(so I have four PMT records)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to create the dataset WANT, where:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.__ &amp;nbsp;I will delete negative pmts at this date,31/05/2017&amp;nbsp;, and re-create the erased records with the double ones from 31/07/2017&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.---&amp;nbsp; Populate the missing two PMTs for &lt;STRONG&gt;&lt;FONT color="#000080"&gt;30/10/2017 &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;I would be grateful for any hint.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;Thanking you in advance.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; have;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; id date &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;ddmmyy10.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; pmt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; date &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;105 30/11/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/11/2017 10.51&lt;/P&gt;&lt;P&gt;105 30/09/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/09/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/08/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/08/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/07/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/07/2017 10.51&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;105 31/07/2017 10.51&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;105 31/07/2017 24.49&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;105 30/06/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/06/2017 10.51&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#ff0000"&gt;105 31/05/2017 -24.49&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#ff0000"&gt;105 31/05/2017 -10.51&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;105 30/04/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/04/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/03/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/03/2017 10.51&lt;/P&gt;&lt;P&gt;105 28/02/2017 24.49&lt;/P&gt;&lt;P&gt;105 28/02/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/01/2017 24.49&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; want;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; id date &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;ddmmyy10.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; pmt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;format&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; date &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;105 30/11/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/11/2017 10.51&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;STRONG&gt;105 30/10/2017 24.49&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;STRONG&gt;105 30/102017 10.51&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;105 30/09/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/09/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/08/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/08/2017 10.51&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;STRONG&gt;105 31/07/2017 24.49&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;STRONG&gt;105 31/07/2017 10.51&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;105 30/06/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/06/2017 10.51&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;105 31/05/2017 24.49&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;105 31/05/2017 10.51&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;105 30/04/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/04/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/03/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/03/2017 10.51&lt;/P&gt;&lt;P&gt;105 28/02/2017 24.49&lt;/P&gt;&lt;P&gt;105 28/02/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/01/2017 24.49&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 18:10:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420547#M103511</guid>
      <dc:creator>Zeus_Olympous</dc:creator>
      <dc:date>2017-12-12T18:10:53Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420552#M103512</link>
      <description>&lt;P&gt;is it just one scenario where&amp;nbsp;&lt;SPAN&gt;missing two PMTs for&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;30/10/2017 occur or missing may occur for various dates? May i ask have you covered the entire scenarios? Just curious. sorry.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#000080"&gt;Also, should i assume the payment is the last day of the month? If yes, shouldn't it be 31st oct as opposed to 30/10/2017 coz some months have 30 days and some have 31&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 18:48:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420552#M103512</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-12T18:48:35Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420565#M103514</link>
      <description>&lt;P&gt;Thank you for your message.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, your observations are correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.--Always at the end of the month (sorry for the ending months date mistakes.&lt;/P&gt;&lt;P&gt;2.-&amp;nbsp; Missing PMTs&amp;nbsp;may occur for various dates and maybe more than two negative number but always they will be offset by the same number of positive PMTS at a later month (enddate).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Of course there are too many IDs that this situation can happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 19:50:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420565#M103514</guid>
      <dc:creator>Zeus_Olympous</dc:creator>
      <dc:date>2017-12-12T19:50:57Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420571#M103516</link>
      <description>&lt;P&gt;It looks like you are essentially trying to reconstruct what should have occurred (payment schedule) from what actually occurred (payment record).&amp;nbsp; Perhaps your goal is some sort of calculation regarding the value of delayed payments- we don't know.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I were doing something like this, I would guess a payment schedule already existed some place, that I didn't need to reconstruct it, and that instead I needed to seek it out.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perhaps I don't have enough information about your situation.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 20:30:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420571#M103516</guid>
      <dc:creator>HB</dc:creator>
      <dc:date>2017-12-12T20:30:32Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420572#M103517</link>
      <description>&lt;P&gt;Not the best to my satisfaction, but see if this helps:&amp;nbsp;&lt;/P&gt;&lt;P&gt;My observations: 1. seems like an ad-hoc fix using code .2 not a great database /DWH/DM design 3. Perhaps a DIY design without focusing on rules and some other considerations as my professor would say&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; have;&lt;/P&gt;&lt;P&gt;input id date ddmmyy10. pmt;&lt;/P&gt;&lt;P&gt;format date date9.;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;105 30/11/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/11/2017 10.51&lt;/P&gt;&lt;P&gt;105 30/09/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/09/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/08/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/08/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/07/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/07/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/07/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/07/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/06/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/06/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/05/2017 -24.49&lt;/P&gt;&lt;P&gt;105 31/05/2017 -10.51&lt;/P&gt;&lt;P&gt;105 30/04/2017 24.49&lt;/P&gt;&lt;P&gt;105 30/04/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/03/2017 24.49&lt;/P&gt;&lt;P&gt;105 31/03/2017 10.51&lt;/P&gt;&lt;P&gt;105 28/02/2017 24.49&lt;/P&gt;&lt;P&gt;105 28/02/2017 10.51&lt;/P&gt;&lt;P&gt;105 31/01/2017 24.49&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;do&amp;nbsp; _n_=&lt;STRONG&gt;1&lt;/STRONG&gt; by &lt;STRONG&gt;1&lt;/STRONG&gt; until(last.id);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id descending date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _k=mod(_n_,&lt;STRONG&gt;2&lt;/STRONG&gt;) ne &lt;STRONG&gt;0&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _prev_pmt1=lag1(pmt);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _prev_pmt2=lag2(pmt);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _k2=lag(date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _k3=lag2(date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _k and date ne _end and date ne _k2 and not missing(_prev_pmt1) and not missing(_prev_pmt2) then&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; do;&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; _date=date;&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; _pmt=pmt;&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; date=_end;&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; pmt=_prev_pmt2;&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; output;&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; pmt=_prev_pmt1;&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; output;&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; date=_date;&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; pmt=_pmt;&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; output;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if _k and date eq _k2 and date eq _k3 then&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; do;&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; _impute_for_negative1=pmt;&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; continue;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if not _k and date eq _k2 and date eq _k3 then&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; do;&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; _impute_for_negative2=pmt;&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; continue;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if _k and date eq _end and pmt&amp;lt;&lt;STRONG&gt;0&lt;/STRONG&gt; then&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; do;&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; pmt=_impute_for_negative1;&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; output;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if not _k and pmt&amp;lt;&lt;STRONG&gt;0&lt;/STRONG&gt; then&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; do;&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; pmt=_impute_for_negative2;&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; output;&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; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _end=intnx('month', date, -&lt;STRONG&gt;1&lt;/STRONG&gt;, 'e');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 20:31:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420572#M103517</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-12T20:31:00Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420577#M103519</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/124892"&gt;@Zeus_Olympous&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;Thank you for your message.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, your observations are correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.--Always at the end of the month (sorry for the ending months date mistakes.&lt;/P&gt;&lt;P&gt;2.-&amp;nbsp; Missing PMTs&amp;nbsp;may occur for various dates and &lt;STRONG&gt;&lt;EM&gt;maybe more than two negative numbe&lt;/EM&gt;r but always they will be offset by the same number of positive PMTS at a later month (enddate). &lt;FONT color="#FF0000"&gt;I think this will prompt a change to the code i gave you &lt;img id="smileysad" class="emoticon emoticon-smileysad" src="https://communities.sas.com/i/smilies/16x16_smiley-sad.png" alt="Smiley Sad" title="Smiley Sad" /&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Of course there are too many IDs that this situation can happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 20:47:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420577#M103519</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-12T20:47:57Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420625#M103521</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/124892"&gt;@Zeus_Olympous&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Thank you for your message.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2.-&amp;nbsp; Missing PMTs&amp;nbsp;may occur for various dates and maybe more than two negative number but always they will be offset by the same number of positive PMTS at a later month (enddate).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And if there are more than two negative time periods how to identify which with the proper time period?? Is there some rule that would identify those? If the data is fixed payments such as car loans or similar with identical values as shown for your example data attaching them to the correct period gets a tad tricky. If the payments varied then it might be possible to identify based on value= - value. Maybe.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Dec 2017 22:24:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420625#M103521</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-12-12T22:24:45Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420694#M103525</link>
      <description>&lt;P&gt;If this is the case i.e.&amp;nbsp;multiple months with negative values always there will be future months with&amp;nbsp;double PMTs or triple PMTs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Dec 2017 08:46:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420694#M103525</guid>
      <dc:creator>Zeus_Olympous</dc:creator>
      <dc:date>2017-12-13T08:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420906#M103558</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/124892"&gt;@Zeus_Olympous&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;If this is the case i.e.&amp;nbsp;multiple months with negative values always there will be future months with&amp;nbsp;double PMTs or triple PMTs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And how to identify which ones replace which?&lt;/P&gt;</description>
      <pubDate>Wed, 13 Dec 2017 17:30:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420906#M103558</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-12-13T17:30:43Z</dc:date>
    </item>
    <item>
      <title>Re: "Normalize" values of a variable across a BY GROUP</title>
      <link>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420918#M103560</link>
      <description>&lt;P&gt;Hi, I would appreciate if you could make a more clear and comprehensive sample HAVE and WANT with all possible business scenarios to tackle. Also, please briefly explain the convert logic in some bullet points.&lt;/P&gt;&lt;P&gt;I am keen and willing to write a code at least for my learning purpose however to make use of such codes as a solution in communities, it can be helped to avoid rework or going back and forth. Thank you!&lt;/P&gt;</description>
      <pubDate>Wed, 13 Dec 2017 18:00:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/quot-Normalize-quot-values-of-a-variable-across-a-BY-GROUP/m-p/420918#M103560</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-13T18:00:23Z</dc:date>
    </item>
  </channel>
</rss>

