<?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: Moving sum with max value by id group in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566875#M11399</link>
    <description>&lt;P&gt;Just to understand the logic.. Why does your 'want' variable equal 1 in the row with values&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;17&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;? The sum of level for the previous five (though there is only four here) obs is 3?&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 18 Jun 2019 14:02:05 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2019-06-18T14:02:05Z</dc:date>
    <item>
      <title>Moving sum with max value by id group</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566869#M11397</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using SAS Enterprise Guide 5.1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I currently have millions of rows and thousands of different ID's. I would like the following (only 1 ID for an example):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;month&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Level&lt;/TD&gt;&lt;TD&gt;What I want&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;17&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&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;17&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&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;17&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&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;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&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;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&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;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&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;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&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;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&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;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;18&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like my computation to begin from when the month equals 1 and the year is 18.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to look back at the previous 5 months (already ordered by this - so previous 5 rows) and to sum column 'Level'. If this is greater than or equal to 3 then the new column of 'Level' (row 6) should be zero, only if the current column 'Level' is 1. If the column 'Level' is 0, it is irrelevant. I would like this to keep moving down until the last month of 12 and year 18.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my code I have tried, but it didn't work:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.test;
set WORK.MONTHS;

lag_Level = lag(Level);
lag_Level2 = lag2(Level);
lag_Level3 = lag3(Level);
lag_Level4 = lag4(Level);
lag_Level5 = lag5(Level);


if month eq 18 then  do;
if sum(lag_count,lag_count2,lag_count3,lag_count4,lag_count5,Level) ge 3 then prop_Level = 0;
end;
else prop_Level = Level;

run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;data WORK.SAMPLEDATA;&lt;BR /&gt;infile datalines dsd truncover;&lt;BR /&gt;input id:$1. month:BEST12. Year:BEST12. Level:BEST12.;&lt;BR /&gt;format month BEST12. Year BEST12. Level BEST12.;&lt;BR /&gt;datalines;&lt;BR /&gt;A 8 17 1&lt;BR /&gt;A 9 17 0&lt;BR /&gt;A 10 17 1&lt;BR /&gt;A 11 17 1&lt;BR /&gt;A 12 17 1&lt;BR /&gt;A 1 18 0&lt;BR /&gt;A 2 18 1&lt;BR /&gt;A 3 18 0&lt;BR /&gt;A 4 18 1&lt;BR /&gt;A 5 18 1&lt;BR /&gt;A 6 18 0&lt;BR /&gt;A 7 18 1&lt;BR /&gt;A 8 18 1&lt;BR /&gt;A 9 18 0&lt;BR /&gt;A 10 18 0&lt;BR /&gt;A 11 18 1&lt;BR /&gt;A 12 18 0&lt;BR /&gt;;;;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help is greatly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2019 13:49:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566869#M11397</guid>
      <dc:creator>1SasUser1</dc:creator>
      <dc:date>2019-06-18T13:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: Moving sum with max value by id group</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566875#M11399</link>
      <description>&lt;P&gt;Just to understand the logic.. Why does your 'want' variable equal 1 in the row with values&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;17&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;? The sum of level for the previous five (though there is only four here) obs is 3?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2019 14:02:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566875#M11399</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-06-18T14:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: Moving sum with max value by id group</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566877#M11401</link>
      <description>&lt;P&gt;I will only be using the data for year 18, so I have just kept what the current value is in column 'Level'.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Apologies for any confusion. I just want the new column to have a different value from year 18 and month 1 on wards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2019 14:05:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566877#M11401</guid>
      <dc:creator>1SasUser1</dc:creator>
      <dc:date>2019-06-18T14:05:45Z</dc:date>
    </item>
    <item>
      <title>Re: Moving sum with max value by id group</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566878#M11402</link>
      <description>&lt;P&gt;Ok. I understand. But then what about the obs&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;18&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;. I would think that your new variable would have zero here?&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2019 14:09:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566878#M11402</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-06-18T14:09:42Z</dc:date>
    </item>
    <item>
      <title>Re: Moving sum with max value by id group</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566880#M11403</link>
      <description>&lt;P&gt;Another valid point.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have added the previous 5 rows of the new column and also the value in column 'Level'. This then equals 3, so the new column will be 1, as the maximum sum is 3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If it was entirely using the column 'Level' then it would be zero.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope that makes more sense.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2019 14:15:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Moving-sum-with-max-value-by-id-group/m-p/566880#M11403</guid>
      <dc:creator>1SasUser1</dc:creator>
      <dc:date>2019-06-18T14:15:08Z</dc:date>
    </item>
  </channel>
</rss>

