<?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: delete observation based on previous value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251441#M47507</link>
    <description>&lt;P&gt;thank you very much&amp;nbsp;&lt;SPAN class="login-bold"&gt;&lt;A id="link_8" class="lia-link-navigation lia-page-link lia-user-name-link" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/49185" target="_self"&gt;mohamed_zaki&lt;/A&gt;, this is exactly what I wanted.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="login-bold"&gt;however I have a silly question.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; delflag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; output&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; happen&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; delflag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;in the above two statement,&lt;/P&gt;
&lt;P&gt;the lines with delflag=0 have been written to the want dataset and&lt;/P&gt;
&lt;P&gt;how does the next if clause still truncate the rest of observations against the same id?&lt;/P&gt;
&lt;P&gt;and even leave the first "happen=1" in the dataset?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to learn this logic. &amp;nbsp;your response is very appreicated.&lt;/P&gt;</description>
    <pubDate>Sun, 21 Feb 2016 23:20:35 GMT</pubDate>
    <dc:creator>Lulus</dc:creator>
    <dc:date>2016-02-21T23:20:35Z</dc:date>
    <item>
      <title>delete observation based on previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251407#M47497</link>
      <description>&lt;P&gt;Hello All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now I have a question regarding how to to conditional deletion based on previous values.&lt;/P&gt;
&lt;P&gt;my table looks like this. &amp;nbsp;this is recording if someone breaks rule for each month.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;have&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID &amp;nbsp; seq &amp;nbsp; happen&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;want&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID seq happen&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;
&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;
&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;as long as there is the first 1 appears, I would like to delete the following rows against each ID.&lt;/P&gt;
&lt;P&gt;In term, what are to be left is a table with 0(never happen) and first 1 (happen the first time).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;now my way of doing it is&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. add cumulative number after happen the first time&lt;/P&gt;
&lt;P&gt;2, delete observation with value more than 1 from the original table&lt;/P&gt;
&lt;P&gt;3, find the first 1 from the original table&lt;/P&gt;
&lt;P&gt;4. merge the tables from 2 and 3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but I felt this is too redundent yet can find a more efficient way....&lt;/P&gt;
&lt;P&gt;Please share with me how would you do this with a smarter processing idea.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I thougt of to set table until 1 against each ID and then ignore the rest boservations for this current ID and then&lt;/P&gt;
&lt;P&gt;jump to the next ID with its first observation read,&lt;/P&gt;
&lt;P&gt;but I don't know to code this in SAS....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please share with me any thoughts...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;thank you!&lt;/P&gt;</description>
      <pubDate>Sun, 21 Feb 2016 16:12:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251407#M47497</guid>
      <dc:creator>Lulus</dc:creator>
      <dc:date>2016-02-21T16:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: delete observation based on previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251409#M47498</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
retain delflag;
by ID;
if first.id then delflag=0;
if delflag=0 then output;
if happen=1 then delflag=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 21 Feb 2016 16:39:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251409#M47498</guid>
      <dc:creator>mohamed_zaki</dc:creator>
      <dc:date>2016-02-21T16:39:11Z</dc:date>
    </item>
    <item>
      <title>Re: delete observation based on previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251441#M47507</link>
      <description>&lt;P&gt;thank you very much&amp;nbsp;&lt;SPAN class="login-bold"&gt;&lt;A id="link_8" class="lia-link-navigation lia-page-link lia-user-name-link" href="https://communities.sas.com/t5/user/viewprofilepage/user-id/49185" target="_self"&gt;mohamed_zaki&lt;/A&gt;, this is exactly what I wanted.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="login-bold"&gt;however I have a silly question.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; delflag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; output&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; happen&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; delflag&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;in the above two statement,&lt;/P&gt;
&lt;P&gt;the lines with delflag=0 have been written to the want dataset and&lt;/P&gt;
&lt;P&gt;how does the next if clause still truncate the rest of observations against the same id?&lt;/P&gt;
&lt;P&gt;and even leave the first "happen=1" in the dataset?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to learn this logic. &amp;nbsp;your response is very appreicated.&lt;/P&gt;</description>
      <pubDate>Sun, 21 Feb 2016 23:20:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/delete-observation-based-on-previous-value/m-p/251441#M47507</guid>
      <dc:creator>Lulus</dc:creator>
      <dc:date>2016-02-21T23:20:35Z</dc:date>
    </item>
  </channel>
</rss>

