<?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: Insert one or many copies of a row when a condition is meet while correcting time stamp in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440453#M110028</link>
    <description>&lt;P&gt;I think you can do this just looking at Date_Time, and don't even need to consider Repeat_Flag.&amp;nbsp; I'll keep Repeat_Flag around just to be consistent with what you asked for:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have end=done;&lt;/P&gt;
&lt;P&gt;output;&lt;/P&gt;
&lt;P&gt;if done=0;&lt;/P&gt;
&lt;P&gt;_n_ = _n_ + 1;&lt;/P&gt;
&lt;P&gt;set have (keep=Date_Time rename=(Date_Time = next_Date_Time)) point=_n_;&lt;/P&gt;
&lt;P&gt;if next_Date_Time - Date_Time &amp;gt; 1;&lt;/P&gt;
&lt;P&gt;Repeat_Flag = 0;&lt;/P&gt;
&lt;P&gt;do Date_Time = Date_Time + 1 to next_Date_Time - 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop next_Date_Time;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
    <pubDate>Tue, 27 Feb 2018 11:08:23 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-02-27T11:08:23Z</dc:date>
    <item>
      <title>Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440422#M110002</link>
      <description>&lt;P&gt;What I have is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date_Time&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Repeat_Flag&lt;/P&gt;&lt;P&gt;&amp;nbsp; 20&amp;nbsp; &amp;nbsp; 22JAN18:16:27:&lt;STRONG&gt;29&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; 10&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;22JAN18:16:27:&lt;STRONG&gt;30&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;5&amp;nbsp; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;31&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; 20&amp;nbsp; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;33&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/STRONG&gt; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; 5&amp;nbsp; &amp;nbsp; 22JAN18:16:27:&lt;STRONG&gt;36&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;What I want is&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Value&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date_Time&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Repeat_Flag&lt;/P&gt;&lt;P&gt;&amp;nbsp; 20&amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;22JAN18:16:27:&lt;STRONG&gt;29&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; 10&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;22JAN18:16:27:&lt;STRONG&gt;30&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;5&amp;nbsp; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;31&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;U&gt;&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;5&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; 22JAN18:16:27:&lt;STRONG&gt;32&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;0&lt;/EM&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;20&amp;nbsp; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;33&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/STRONG&gt;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;EM&gt;20&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;EM&gt; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;34&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/STRONG&gt;0&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;EM&gt;&amp;nbsp;&lt;STRONG&gt;20&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;22JAN18:16:27:&lt;STRONG&gt;35&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/STRONG&gt;0&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; 5&amp;nbsp; &amp;nbsp; 22JAN18:16:27:&lt;STRONG&gt;36&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I know that I could use the EST package to do this but I do not have the licence. This means I need to find another way. I already tried&amp;nbsp;several things but nothing is working exactly as I need it to be.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks a lot for your help &lt;span class="lia-unicode-emoji" title=":monkey_face:"&gt;🐵&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 10:02:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440422#M110002</guid>
      <dc:creator>EBB</dc:creator>
      <dc:date>2018-02-27T10:02:30Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440427#M110006</link>
      <description>&lt;P&gt;Post test data in the form of a datastep!&lt;/P&gt;
&lt;P&gt;Also post what you have tried.&lt;/P&gt;
&lt;P&gt;At a guess, as no data to work with:&lt;/P&gt;
&lt;PRE&gt;data want;
  set have;
  retain lst_data_time;
  if _n_=1 then lst_date_time=date_time;
  else do;
    if date_time ne lst_date_time + 1 then do;
      old_dt=date_time;
      old_flag=repeat_flag;
      do i=lst_date_time+1 to date_time-1;
        date_time=date_time+i;
        repeat_flag=0;
        output;
      end;
      date_time=old_dt;
      repeat_flag=old_flag;
      output;
    end;
    else output;
  end;
run;
        &lt;/PRE&gt;</description>
      <pubDate>Tue, 27 Feb 2018 10:10:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440427#M110006</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-02-27T10:10:43Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440434#M110012</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Value:best12. Date_Time:datetime16.  Repeat_Flag:best12.;
format Date_Time datetime16.;
datalines;
20   22JAN18:16:27:29    0
10   22JAN18:16:27:30    0
5    22JAN18:16:27:31    1
20   22JAN18:16:27:33    1
5    22JAN18:16:27:36    0
;
run;

data want(drop=i j);
set have;
retain i;
	if _N_=1 then i=0;
	if Repeat_Flag=1 then do;
		output;
		i=i+1;
		do j = 1 to i by 1;
			Date_Time=Date_Time+1;
			Repeat_Flag=0;
			output;
		end;
	end;
	else do;
		output;
	end;
run;&lt;/CODE&gt;&lt;/PRE&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;Please let us know if this worked for you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 10:39:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440434#M110012</guid>
      <dc:creator>Satish_Parida</dc:creator>
      <dc:date>2018-02-27T10:39:19Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440453#M110028</link>
      <description>&lt;P&gt;I think you can do this just looking at Date_Time, and don't even need to consider Repeat_Flag.&amp;nbsp; I'll keep Repeat_Flag around just to be consistent with what you asked for:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have end=done;&lt;/P&gt;
&lt;P&gt;output;&lt;/P&gt;
&lt;P&gt;if done=0;&lt;/P&gt;
&lt;P&gt;_n_ = _n_ + 1;&lt;/P&gt;
&lt;P&gt;set have (keep=Date_Time rename=(Date_Time = next_Date_Time)) point=_n_;&lt;/P&gt;
&lt;P&gt;if next_Date_Time - Date_Time &amp;gt; 1;&lt;/P&gt;
&lt;P&gt;Repeat_Flag = 0;&lt;/P&gt;
&lt;P&gt;do Date_Time = Date_Time + 1 to next_Date_Time - 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop next_Date_Time;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 11:08:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440453#M110028</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-02-27T11:08:23Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440479#M110037</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Value:best12. Date_Time:datetime16.  Repeat_Flag:best12.;
format Date_Time datetime16.;
datalines;
20   22JAN18:16:27:29    0
10   22JAN18:16:27:30    0
5    22JAN18:16:27:31    1
20   22JAN18:16:27:33    1
5    22JAN18:16:27:36    0
;
run;
data want; 
 merge have have(keep=Date_Time rename=(Date_Time=_Date_Time) firstobs=2);
 output;
 do i=Date_Time+1 to coalesce(_Date_Time-1,0);
  Date_Time=i;Repeat_Flag=0;output;
 end;
 drop i _Date_Time;
run;

proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 27 Feb 2018 12:42:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440479#M110037</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-02-27T12:42:12Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440777#M110190</link>
      <description>&lt;P&gt;Hi RW9, you are right, next time I'll post the test data in a datastep format.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Feb 2018 06:46:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440777#M110190</guid>
      <dc:creator>EBB</dc:creator>
      <dc:date>2018-02-28T06:46:58Z</dc:date>
    </item>
    <item>
      <title>Re: Insert one or many copies of a row when a condition is meet while correcting time stamp</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440779#M110191</link>
      <description>&lt;P&gt;Thanks a lot Satish!&lt;/P&gt;</description>
      <pubDate>Wed, 28 Feb 2018 06:47:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Insert-one-or-many-copies-of-a-row-when-a-condition-is-meet/m-p/440779#M110191</guid>
      <dc:creator>EBB</dc:creator>
      <dc:date>2018-02-28T06:47:31Z</dc:date>
    </item>
  </channel>
</rss>

