<?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: How to populate LOCF values to all missing obs in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/388997#M93269</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; one;&lt;/P&gt;&lt;P&gt;input name $ visitnum aval;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;a 1 10&lt;/P&gt;&lt;P&gt;a 2 20&lt;/P&gt;&lt;P&gt;a 3 30&lt;/P&gt;&lt;P&gt;a 4 40&lt;/P&gt;&lt;P&gt;a 5 50&lt;/P&gt;&lt;P&gt;b 1 10&lt;/P&gt;&lt;P&gt;b 3 30&lt;/P&gt;&lt;P&gt;b 4 40&lt;/P&gt;&lt;P&gt;b 5 50&lt;/P&gt;&lt;P&gt;c 1 10&lt;/P&gt;&lt;P&gt;c 2 20&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;set one;&lt;/P&gt;&lt;P&gt;by name;&lt;/P&gt;&lt;P&gt;_k=lag(visitnum);&lt;/P&gt;&lt;P&gt;_k1=lag(aval);&lt;/P&gt;&lt;P&gt;_visitnum=visitnum;&lt;/P&gt;&lt;P&gt;_aval=aval;&lt;/P&gt;&lt;P&gt;if not first.name and dif(visitnum)&amp;gt;&lt;STRONG&gt;1&lt;/STRONG&gt; then do;&lt;/P&gt;&lt;P&gt;visitnum=_k+&lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;aval=_k1;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;visitnum=_visitnum;&lt;/P&gt;&lt;P&gt;aval=_aval;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;else output;&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
    <pubDate>Thu, 17 Aug 2017 23:11:49 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2017-08-17T23:11:49Z</dc:date>
    <item>
      <title>How to populate LOCF values to all missing obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/388995#M93267</link>
      <description>&lt;P&gt;Dear,&lt;/P&gt;
&lt;P&gt;In my data three subjects with 11 obs present. The subject 'a' has all visit obs. The subject 'b' and 'c' has a few missing visits. I need to populate all the visits with values from previous 'aval' variable values. Each subject should have all the visit obs&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Eg;&lt;/P&gt;
&lt;P&gt;Subject b has missing visit 2. The 'visitnum= 2' obs is populated with aval &amp;nbsp;from visitnum;=1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data one;
input name $ visitnum aval;
datalines;
a 1 10
a 2 20
a 3 30
a 4 40
a 5 50
b 1 10
b 3 30
b 4 40
b 5 50
c 1 10
c 2 20
;

out put needed;

a 1 10
a 2 20
a 3 30
a 4 40
a 5 50
b 1 10
b 2 10
b 3 30
b 4 40
b 5 50
c 1 10
c 2 20
c 3 20
c 4 20
c 5 20&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Aug 2017 22:55:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/388995#M93267</guid>
      <dc:creator>knveraraju91</dc:creator>
      <dc:date>2017-08-17T22:55:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to populate LOCF values to all missing obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/388997#M93269</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; one;&lt;/P&gt;&lt;P&gt;input name $ visitnum aval;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;a 1 10&lt;/P&gt;&lt;P&gt;a 2 20&lt;/P&gt;&lt;P&gt;a 3 30&lt;/P&gt;&lt;P&gt;a 4 40&lt;/P&gt;&lt;P&gt;a 5 50&lt;/P&gt;&lt;P&gt;b 1 10&lt;/P&gt;&lt;P&gt;b 3 30&lt;/P&gt;&lt;P&gt;b 4 40&lt;/P&gt;&lt;P&gt;b 5 50&lt;/P&gt;&lt;P&gt;c 1 10&lt;/P&gt;&lt;P&gt;c 2 20&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want;&lt;/P&gt;&lt;P&gt;set one;&lt;/P&gt;&lt;P&gt;by name;&lt;/P&gt;&lt;P&gt;_k=lag(visitnum);&lt;/P&gt;&lt;P&gt;_k1=lag(aval);&lt;/P&gt;&lt;P&gt;_visitnum=visitnum;&lt;/P&gt;&lt;P&gt;_aval=aval;&lt;/P&gt;&lt;P&gt;if not first.name and dif(visitnum)&amp;gt;&lt;STRONG&gt;1&lt;/STRONG&gt; then do;&lt;/P&gt;&lt;P&gt;visitnum=_k+&lt;STRONG&gt;1&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;aval=_k1;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;visitnum=_visitnum;&lt;/P&gt;&lt;P&gt;aval=_aval;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;else output;&lt;/P&gt;&lt;P&gt;drop _:;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Aug 2017 23:11:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/388997#M93269</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-08-17T23:11:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to populate LOCF values to all missing obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/389002#M93271</link>
      <description>&lt;P&gt;The following should work:&lt;/P&gt;
&lt;PRE&gt;data one;
  input name $ visitnum aval;
  datalines;
a 1 10
a 2 20
a 3 30
a 4 40
a 5 50
b 1 10
b 3 30
b 4 40
b 5 50
c 1 10
c 2 20
;
 
data want (keep=name visitnum aval);
  set one;
  by name;
  array avals(5);
  retain avals:;
  if first.name then call missing(of avals(*));
  avals(visitnum)=aval;
  if last.name then do i=1 to 5;
    if missing(avals(i)) then avals(i)=avals(i-1);
    aval=avals(i);
    visitnum=i;
    output;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Aug 2017 00:12:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/389002#M93271</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-08-18T00:12:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to populate LOCF values to all missing obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/389105#M93302</link>
      <description>&lt;PRE&gt;

data one;
  input name $ visitnum aval;
  datalines;
a 1 10
a 2 20
a 3 30
a 4 40
a 5 50
b 1 10
b 3 30
b 4 40
b 5 50
c 1 10
c 2 20
;

proc sql;
create table temp as
 select a.*,b.aval
  from (
 select * from 
 (select distinct name from one),
 (select distinct visitnum from one)
 ) as a left join one as b
 on a.name=b.name and a.visitnum=b.visitnum ;
quit;


data want;
 set temp;
 by name;
 retain new;
 if first.name then call missing(new);
 if not missing(aval) then new=aval;
run;

&lt;/PRE&gt;</description>
      <pubDate>Fri, 18 Aug 2017 13:33:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-populate-LOCF-values-to-all-missing-obs/m-p/389105#M93302</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-08-18T13:33:38Z</dc:date>
    </item>
  </channel>
</rss>

