<?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: First observation carry backward in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330813#M74287</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/45151"&gt;@RW9&lt;/a&gt;: Thanks, I have posted the test data in datastep.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Actual dataset contains several visits and the test code does not seem to work properly if there are several visits than the baseline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
    <pubDate>Wed, 08 Feb 2017 12:23:55 GMT</pubDate>
    <dc:creator>ari</dc:creator>
    <dc:date>2017-02-08T12:23:55Z</dc:date>
    <item>
      <title>First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330793#M74283</link>
      <description>&lt;P&gt;Have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input&lt;BR /&gt;ID date$ visit $ visitnum value;&lt;BR /&gt;datalines;&lt;BR /&gt;1 5/6/1998 . .&lt;BR /&gt;1 5/6/1998 Baseline 1 2&lt;BR /&gt;1 5/6/1998 Baseline 1 2&lt;BR /&gt;1 5/9/1998 . 2&lt;BR /&gt;1 5/13/1998 . .&lt;BR /&gt;1 5/13/1998 Week 1 3 2&lt;BR /&gt;1 5/13/1998 Week 1 3 2&lt;BR /&gt;1 5/15/1998 . .&lt;BR /&gt;1 5/19/1998 Week 2 4 3&lt;BR /&gt;1 5/19/1998 Week 2 4 3&lt;BR /&gt;1 5/27/1998 Week 3 5 3&lt;BR /&gt;1 5/27/1998 Week 3 5 3&lt;BR /&gt;1 6/2/1998 . .&lt;BR /&gt;1 6/3/1998 Week 4 6 2&lt;BR /&gt;1 6/3/1998 Week 4 6 2&lt;BR /&gt;1 6/5/1998 . .&lt;BR /&gt;1 6/9/1998 Week 5 7 .&lt;BR /&gt;1 6/9/1998 Week 5 7 .&lt;BR /&gt;1 6/9/1998 . .&lt;BR /&gt;1 6/12/1998 . .&lt;BR /&gt;1 6/16/1998 . .&lt;BR /&gt;1 6/17/1998 Week 6 8 2&lt;BR /&gt;1 6/17/1998 Week 6 8 2&lt;BR /&gt;1 6/24/1998 Week 4 9 3&lt;BR /&gt;1 6/24/1998 Week 4 9 3&lt;BR /&gt;1 7/1/1998 Week 4 10 1&lt;BR /&gt;1 7/1/1998 Week 4 10 1&lt;BR /&gt;1 7/7/1998 Week 4 11 .&lt;BR /&gt;1 7/7/1998 Week 4 11 .&lt;BR /&gt;1 7/15/1998 Week 4 12 .&lt;BR /&gt;1 7/15/1998 Week 4 12 .&lt;BR /&gt;1 7/25/1998 Week 7 13 .&lt;BR /&gt;1 7/25/1998 Week 7 13 .&lt;BR /&gt;1 7/29/1998 Week 7 14 .&lt;BR /&gt;1 7/29/1998 Week 7 14 .&lt;BR /&gt;1 8/5/1998 Week 7 15 .&lt;BR /&gt;1 8/5/1998 Week 7 15 .&lt;/P&gt;&lt;P&gt;; run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Want:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;DATE&lt;/TD&gt;&lt;TD&gt;visit&lt;/TD&gt;&lt;TD&gt;VISITNUM&lt;/TD&gt;&lt;TD&gt;Value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/6/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/6/1998&lt;/TD&gt;&lt;TD&gt;Baseline&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/6/1998&lt;/TD&gt;&lt;TD&gt;Baseline&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/9/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/13/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/13/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/13/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/15/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/19/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/19/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/27/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5/27/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/2/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/3/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/3/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/5/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/9/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 5&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/9/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 5&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/9/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/12/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/16/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/17/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 6&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/17/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 6&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/24/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;6/24/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/1/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/1/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/7/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/7/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/15/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/15/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 4&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/25/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/25/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/29/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7/29/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8/5/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;8/5/1998&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Week 7&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Trying to impute the missing value by carrying the observation reported at visit = "baseline" &amp;nbsp;backward. Any leads to achieve this in sas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 12:24:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330793#M74283</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2017-02-08T12:24:32Z</dc:date>
    </item>
    <item>
      <title>Re: First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330799#M74285</link>
      <description>&lt;P&gt;Post test data in the form of a datastep - this code isn't tested as I am not typing in test data:&lt;/P&gt;
&lt;PRE&gt;proc sql;
  create table WANT as
  select  A.ID,
            A.VISIT,
            A.VISITNUM,
            COALESCE(A.VALUE,B.VALUE) as VALUE
  from    HAVE A
  left join (select distinct ID,VALUE from HAVE where VISIT="Baseline") B
  on       A.ID=B.ID;
quit;&lt;/PRE&gt;</description>
      <pubDate>Wed, 08 Feb 2017 11:45:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330799#M74285</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-02-08T11:45:56Z</dc:date>
    </item>
    <item>
      <title>Re: First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330813#M74287</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/45151"&gt;@RW9&lt;/a&gt;: Thanks, I have posted the test data in datastep.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Actual dataset contains several visits and the test code does not seem to work properly if there are several visits than the baseline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 12:23:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330813#M74287</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2017-02-08T12:23:55Z</dc:date>
    </item>
    <item>
      <title>Re: First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330817#M74288</link>
      <description>&lt;P&gt;You want dataset doesn't seem to match the test data. &amp;nbsp;See 5/9/1988 - Visitnum=2 in test, nothing in output. &amp;nbsp;First I would suggest sorting out Visit and Visitnumber. &amp;nbsp;These should be present in all records - this is standard across the industry and I am suprised you have data with no identifier. &amp;nbsp;It looks like you want to base it on date (as above I would recommend sorting out visit first) which you could do with:&lt;/P&gt;
&lt;P&gt;This works, however as your date is not really a date (its just a character according to your test data) it wont sort properly. &amp;nbsp;Simple answer make date variables actual date values.&lt;/P&gt;
&lt;PRE&gt;data have;
  infile datalines missover;
  input ID date$ visit $ visitnum value;
datalines;
1 5/6/1998 . .
1 5/6/1998 Baseline 1 2
1 5/6/1998 Baseline 1 2
1 5/9/1998 . 2
1 5/13/1998 . .
1 5/13/1998 Week 1 3 2
1 5/13/1998 Week 1 3 2
1 5/15/1998 . .
1 5/19/1998 Week 2 4 3
1 5/19/1998 Week 2 4 3
1 5/27/1998 Week 3 5 3
1 5/27/1998 Week 3 5 3
1 6/2/1998 . .
1 6/3/1998 Week 4 6 2
1 6/3/1998 Week 4 6 2
1 6/5/1998 . .
1 6/9/1998 Week 5 7 .
1 6/9/1998 Week 5 7 .
1 6/9/1998 . .
1 6/12/1998 . .
1 6/16/1998 . .
1 6/17/1998 Week 6 8 2
1 6/17/1998 Week 6 8 2
1 6/24/1998 Week 4 9 3
1 6/24/1998 Week 4 9 3
1 7/1/1998 Week 4 10 1
1 7/1/1998 Week 4 10 1
1 7/7/1998 Week 4 11 .
1 7/7/1998 Week 4 11 .
1 7/15/1998 Week 4 12 .
1 7/15/1998 Week 4 12 .
1 7/25/1998 Week 7 13 .
1 7/25/1998 Week 7 13 .
1 7/29/1998 Week 7 14 .
1 7/29/1998 Week 7 14 .
1 8/5/1998 Week 7 15 .
1 8/5/1998 Week 7 15 .
; run;

proc sql;
  create table WANT as
  select  A.ID,
          A.DATE,
          A.VISIT,
          A.VISITNUM,
          COALESCE(A.VALUE,B.VALUE) as VALUE
  from    HAVE A
  left join (select distinct ID,DATE,VALUE from HAVE where VISIT="Baseline") B
  on       A.ID=B.ID
  and     A.DATE=B.DATE
  order by A.ID,B.DATE;
quit;&lt;/PRE&gt;</description>
      <pubDate>Wed, 08 Feb 2017 13:00:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330817#M74288</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-02-08T13:00:53Z</dc:date>
    </item>
    <item>
      <title>Re: First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330873#M74300</link>
      <description>&lt;OL&gt;
&lt;LI&gt;Your data is apparently sorted by ID/DATE, and&lt;/LI&gt;
&lt;LI&gt;the first date is the only date with any&amp;nbsp;observations having visit="BASELINE".&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;For that date, and that date only, you want to replace all instances of VALUE=. (which also have visit=' '),&amp;nbsp; with the non-missing value found in the baseline record:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;I revised your data HAVE to properly read the date&amp;nbsp;as a true data value, and the visit value:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID date :mmddyy10. 
      @13 visit $char8. visitnum value;
format date date9.;
datalines;
1 5/6/1998           . .
1 5/6/1998  Baseline 1 2
1 5/6/1998  Baseline 1 2
1 5/9/1998           . 2
1 5/13/1998          . .
1 5/13/1998 Week 1   3 2
1 5/13/1998 Week 1   3 2
1 5/15/1998          . .
1 5/19/1998 Week 2   4 3
1 5/19/1998 Week 2   4 3
1 5/27/1998 Week 3   5 3
1 5/27/1998 Week 3   5 3
1 6/2/1998           . .
1 6/3/1998  Week 4   6 2
1 6/3/1998  Week 4   6 2
1 6/5/1998           . .
1 6/9/1998  Week 5   7 .
1 6/9/1998  Week 5   7 .
1 6/9/1998           . .
1 6/12/1998          . .
1 6/16/1998          . .
1 6/17/1998 Week 6   8 2
1 6/17/1998 Week 6   8 2
1 6/24/1998 Week 4   9 3
1 6/24/1998 Week 4   9 3
1 7/1/1998  Week 4   10 1
1 7/1/1998  Week 4   10 1
1 7/7/1998  Week 4   11 .
1 7/7/1998  Week 4   11 .
1 7/15/1998 Week 4   12 .
1 7/15/1998 Week 4   12 .
1 7/25/1998 Week 7   13 .
1 7/25/1998 Week 7   13 .
1 7/29/1998 Week 7   14 .
1 7/29/1998 Week 7   14 .
1 8/5/1998  Week 7   15 .
1 8/5/1998  Week 7   15 .
; run;


data want;
  set have (in=inbase where=(visit='Baseline'))
      have (in=inkeep);
  by id date;
  retain basevalue;
  if first.id and inbase then basevalue=value;
  else if first.date then basevalue=.;
  if inkeep;
  if value=. then value=basevalue;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notes:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The SET has two input streams: (a) all the baseline records for a given id/date, followed by all the records for the same id/date.&amp;nbsp; Each of these streams has an "in dummy".&lt;/LI&gt;
&lt;LI&gt;If that SET statement produces a first record for the ID that is a baseline, it save the value in basevalue.&lt;/LI&gt;
&lt;LI&gt;but if a subsequent date has been encountered, then reset basevalue to missing, so that it does not prompt an override of subsequent VALUE values&lt;/LI&gt;
&lt;LI&gt;further processing only for the INKEEP records.&lt;/LI&gt;
&lt;LI&gt;replace missinug VALUE with BASEVALUE.&amp;nbsp; But note that basevalue is non-missing only for the first date, so it does not erroneously overwrite VALUE for other dates.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is not exactly a "look ahead" with a subsequent carry back.&amp;nbsp; Instead it interleave two separate streams of the sorted data.&amp;nbsp; One stream to get the baseline value, but is otherwise ignored.&amp;nbsp; The other stream has every record output, and is conditionally modified by the baseline value.&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 15:58:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/330873#M74300</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-08T15:58:44Z</dc:date>
    </item>
    <item>
      <title>Re: First observation carry backward</title>
      <link>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/331085#M74367</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31461"&gt;@mkeintz&lt;/a&gt;: Thank you. &amp;nbsp;Appreciate a &amp;nbsp;lot for the explanation about how does the code work. Very helpful to apply on different scenarios.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 08:09:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/First-observation-carry-backward/m-p/331085#M74367</guid>
      <dc:creator>ari</dc:creator>
      <dc:date>2017-02-09T08:09:12Z</dc:date>
    </item>
  </channel>
</rss>

