<?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: Lag multiple, non-consecutive missing variables based on a prior one in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964258#M375549</link>
    <description>&lt;P&gt;Just work from right to left.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input id $ (time1-time5) (:$2.);
cards;
A 1 NA 2 NA NA
B 2 3 NA 3 NA
C 2 NA NA NA 4
D 1 2 2 NA NA
;

data want;
  set have;
  array t time1-time5;
  do i=dim(t) to 2 by -1;
    if t[i]='NA' then t[i]=t[i-1];
  end;
  drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Tom_0-1744657382583.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106228i713DD4B7E7CB8788/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Tom_0-1744657382583.png" alt="Tom_0-1744657382583.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although I do not understand why you would want those NA strings in your TIME variables when the other values look like numbers.&amp;nbsp; If instead of that constant text you set the values MISSING then you could use MISSING() function instead of the equality operator in the IF condition.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if missing(T[i]) then ...&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 14 Apr 2025 19:06:38 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2025-04-14T19:06:38Z</dc:date>
    <item>
      <title>Lag multiple, non-consecutive missing variables based on a prior one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964254#M375547</link>
      <description>&lt;P&gt;I have a wide dataset (could transpose to long, then be re-transposed if necessary) that has various outcomes at 15 time points. If missing, it will have "NA." I want to impute the first missing "NA" right after an observation. See example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HAVE:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;time1&lt;/TD&gt;&lt;TD&gt;time2&lt;/TD&gt;&lt;TD&gt;time3&lt;/TD&gt;&lt;TD&gt;time4&lt;/TD&gt;&lt;TD&gt;time5&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;NA&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WANT:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;time1&lt;/TD&gt;&lt;TD&gt;time2&lt;/TD&gt;&lt;TD&gt;time3&lt;/TD&gt;&lt;TD&gt;time4&lt;/TD&gt;&lt;TD&gt;time5&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;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;NA&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;1&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;TD&gt;NA&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help would be greatly appreciated!&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 18:16:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964254#M375547</guid>
      <dc:creator>akmm10</dc:creator>
      <dc:date>2025-04-14T18:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: Lag multiple, non-consecutive missing variables based on a prior one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964258#M375549</link>
      <description>&lt;P&gt;Just work from right to left.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input id $ (time1-time5) (:$2.);
cards;
A 1 NA 2 NA NA
B 2 3 NA 3 NA
C 2 NA NA NA 4
D 1 2 2 NA NA
;

data want;
  set have;
  array t time1-time5;
  do i=dim(t) to 2 by -1;
    if t[i]='NA' then t[i]=t[i-1];
  end;
  drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Tom_0-1744657382583.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106228i713DD4B7E7CB8788/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Tom_0-1744657382583.png" alt="Tom_0-1744657382583.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although I do not understand why you would want those NA strings in your TIME variables when the other values look like numbers.&amp;nbsp; If instead of that constant text you set the values MISSING then you could use MISSING() function instead of the equality operator in the IF condition.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if missing(T[i]) then ...&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 19:06:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964258#M375549</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-04-14T19:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: Lag multiple, non-consecutive missing variables based on a prior one</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964260#M375551</link>
      <description>&lt;P&gt;Oh, simpler than I thought! Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 14 Apr 2025 19:46:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lag-multiple-non-consecutive-missing-variables-based-on-a-prior/m-p/964260#M375551</guid>
      <dc:creator>akmm10</dc:creator>
      <dc:date>2025-04-14T19:46:44Z</dc:date>
    </item>
  </channel>
</rss>

