<?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: Calculate values based on both previous and next rows, in a dynamic way in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776184#M246806</link>
    <description>&lt;P&gt;Then you need to rephrase your conditions until they lead to exactly the outcome that you want, and do not contradict it in places.&lt;/P&gt;
&lt;P&gt;See Maxim 42, a well-done question will be 90% of the answer.&lt;/P&gt;</description>
    <pubDate>Mon, 25 Oct 2021 13:01:14 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2021-10-25T13:01:14Z</dc:date>
    <item>
      <title>Calculate values based on both previous and next rows, in a dynamic way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776146#M246785</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;Hi guys,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;Please help me out with the following topic. I want to find a way to automatically calculate values for variable y2. Variables x and y1 are already calculated.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;The rules for calculation of y2 variable are the followings:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;1) If y1=-1 (day 3), the value of y1 from the day1 and day2=0 and in the next day (day 4) y1=0 then the counter for y2 (day 3) is -1.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;2) If there is no counter reset (i.e. y1 from day&amp;nbsp;16=-2 and y1 from day 18=-1) then y2 from day 18=-4. In day 19, y2 should be -8 as there still is no counter reset. Same with day 21, when y2 should be -16.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;The counter resets only in the following conditions:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;- if y1 from previous day and y1 from next day =0 (e.g. day2=0, day3=-1 and day4=0 -&amp;gt; day 5 counter reset);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.5pt; font-family: 'Arial',sans-serif; color: #333333;"&gt;- if y1 from next two days=0 (e.g day5=-1, day6=-2, day7=0, day8=0 -&amp;gt;in day9 counter reset).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Day_no&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;y1&lt;/TD&gt;&lt;TD&gt;y2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&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;2&lt;/TD&gt;&lt;TD&gt;1&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;3&lt;/TD&gt;&lt;TD&gt;2&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;4&lt;/TD&gt;&lt;TD&gt;1&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;5&lt;/TD&gt;&lt;TD&gt;4&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;6&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-2&lt;/TD&gt;&lt;TD&gt;-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1&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;8&lt;/TD&gt;&lt;TD&gt;1&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;9&lt;/TD&gt;&lt;TD&gt;1&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;10&lt;/TD&gt;&lt;TD&gt;1&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;11&lt;/TD&gt;&lt;TD&gt;2&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;12&lt;/TD&gt;&lt;TD&gt;1&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;13&lt;/TD&gt;&lt;TD&gt;5&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;14&lt;/TD&gt;&lt;TD&gt;6&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;15&lt;/TD&gt;&lt;TD&gt;7&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;16&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;-2&lt;/TD&gt;&lt;TD&gt;-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;1&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;18&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;-1&lt;/TD&gt;&lt;TD&gt;-4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;-2&lt;/TD&gt;&lt;TD&gt;-8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;1&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;21&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-1&lt;/TD&gt;&lt;TD&gt;-16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;22&lt;/TD&gt;&lt;TD&gt;1&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;23&lt;/TD&gt;&lt;TD&gt;1&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;24&lt;/TD&gt;&lt;TD&gt;5&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;25&lt;/TD&gt;&lt;TD&gt;1&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;</description>
      <pubDate>Mon, 25 Oct 2021 14:29:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776146#M246785</guid>
      <dc:creator>Vic6</dc:creator>
      <dc:date>2021-10-25T14:29:25Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate values based on both previous and next rows, in a dynamic way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776149#M246788</link>
      <description>&lt;P&gt;According to your condition #1, y2 in day 21 should be -1 (y1 = -1 and the following y1 = 0).&lt;/P&gt;</description>
      <pubDate>Mon, 25 Oct 2021 09:11:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776149#M246788</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-10-25T09:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate values based on both previous and next rows, in a dynamic way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776150#M246789</link>
      <description>It seems to be a mistake in my conditions...The correct value for y2 in day 21 should be -16 because there is no counter reset between day 19 and day 21. The break will take place in day 23 since day 20=0, day 21=-1 and day 22=0.&lt;BR /&gt;The condition #1 would apply only in case we would had a day 0 with y1=0.</description>
      <pubDate>Mon, 25 Oct 2021 09:23:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776150#M246789</guid>
      <dc:creator>Vic6</dc:creator>
      <dc:date>2021-10-25T09:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate values based on both previous and next rows, in a dynamic way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776184#M246806</link>
      <description>&lt;P&gt;Then you need to rephrase your conditions until they lead to exactly the outcome that you want, and do not contradict it in places.&lt;/P&gt;
&lt;P&gt;See Maxim 42, a well-done question will be 90% of the answer.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Oct 2021 13:01:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776184#M246806</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-10-25T13:01:14Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate values based on both previous and next rows, in a dynamic way</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776203#M246812</link>
      <description>&lt;P&gt;Conditions have been updated in the initial message.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Oct 2021 14:30:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-values-based-on-both-previous-and-next-rows-in-a/m-p/776203#M246812</guid>
      <dc:creator>Vic6</dc:creator>
      <dc:date>2021-10-25T14:30:22Z</dc:date>
    </item>
  </channel>
</rss>

