<?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: Filling in missing sequence number and linearly interpolating between values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-missing-sequence-number-and-linearly-interpolating/m-p/492366#M129377</link>
    <description>&lt;P&gt;interpolating from 2 numbers is not too difficult to manage, notice that the one- missing end scenario is also included.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data raw;
input cow_ID day milk_yield max_length ;
datalines;
1 1 21.6 335
1 2 21.6 335
1 4 21.6 335
1 335 16.8 335
3 3 18.4 410
3 5 20.1 410
3 410 10.8 415
;

run;


data want;
   set raw;
   by cow_id;
   set raw(firstobs=2 keep=day milk_yield rename=(day=_day milk_yield=_mk)) raw(obs=1 drop=_all_);
if first.cow_id and day&amp;gt;1 then do;
   _fday=day;
   do day=1 by 1 while (day&amp;lt;_fday);
      output;
	end;
	end;
   if not last.cow_id then do;
do _n_=1 by 1 to _day-day;
    if _n_=1 then do;
    _mk1=milk_yield;
	_day1=day;
	end;
milk_yield=_mk1+(day-_day1)*((_mk-_mk1)/(_day-_day1));
	
  output;
  day=day+1;
end;
end;
else do;
  do while (day&amp;lt;=max_length);

output;
day=day+1;
end;
end;
drop _:;;
run;

	   &lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 04 Sep 2018 16:34:16 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2018-09-04T16:34:16Z</dc:date>
    <item>
      <title>Filling in missing sequence number and linearly interpolating between values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-missing-sequence-number-and-linearly-interpolating/m-p/492290#M129347</link>
      <description>&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;I have a data set that&amp;nbsp;contrains daily records of milk yields for each individual animal. However, some days are missing in the data (goes from D2-D4 with no D3). I want to fill in these missing days&amp;nbsp;for each individual animal. However, every animal has a different lactation length (ie some go from D1-D400, others from D5-D363). I do have the maximum lactation length as a value in my data set.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, once I have filled in all the missing sequence numbers, how do I linearly interpolate the corresponding milk yields for the missing values?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My data looks something like this:&lt;/P&gt;&lt;P&gt;data raw;&lt;/P&gt;&lt;P&gt;input&amp;nbsp;cow_ID day milk_yield max_length&amp;nbsp;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1 1&amp;nbsp;21.6 335&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1 2&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;21.6 335&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1 4&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;21.6 335&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;1 335 16.8 335&lt;/P&gt;&lt;P&gt;3 1 18.4 410&lt;/P&gt;&lt;P&gt;3 3 20.1 410&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;3 410 10.8 410;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So for example, for cow 1 I want to insert a row for her missing day 3 and the linearly interpolate the milk yield for day 3 based on the data from day 2 and day 4.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Sep 2018 13:53:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-missing-sequence-number-and-linearly-interpolating/m-p/492290#M129347</guid>
      <dc:creator>linaya</dc:creator>
      <dc:date>2018-09-04T13:53:48Z</dc:date>
    </item>
    <item>
      <title>Re: Filling in missing sequence number and linearly interpolating between values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-missing-sequence-number-and-linearly-interpolating/m-p/492366#M129377</link>
      <description>&lt;P&gt;interpolating from 2 numbers is not too difficult to manage, notice that the one- missing end scenario is also included.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data raw;
input cow_ID day milk_yield max_length ;
datalines;
1 1 21.6 335
1 2 21.6 335
1 4 21.6 335
1 335 16.8 335
3 3 18.4 410
3 5 20.1 410
3 410 10.8 415
;

run;


data want;
   set raw;
   by cow_id;
   set raw(firstobs=2 keep=day milk_yield rename=(day=_day milk_yield=_mk)) raw(obs=1 drop=_all_);
if first.cow_id and day&amp;gt;1 then do;
   _fday=day;
   do day=1 by 1 while (day&amp;lt;_fday);
      output;
	end;
	end;
   if not last.cow_id then do;
do _n_=1 by 1 to _day-day;
    if _n_=1 then do;
    _mk1=milk_yield;
	_day1=day;
	end;
milk_yield=_mk1+(day-_day1)*((_mk-_mk1)/(_day-_day1));
	
  output;
  day=day+1;
end;
end;
else do;
  do while (day&amp;lt;=max_length);

output;
day=day+1;
end;
end;
drop _:;;
run;

	   &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Sep 2018 16:34:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-missing-sequence-number-and-linearly-interpolating/m-p/492366#M129377</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2018-09-04T16:34:16Z</dc:date>
    </item>
  </channel>
</rss>

