<?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: missing value between missing days in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612213#M178584</link>
    <description>&lt;P&gt;Create all possible combinations of subject and day. Merge this with the original data set. If value is missing, set value to be zero.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
    input subject value day;
    cards;
    1 5 1
    1 5 2
    1 1 3
    1 2 5
    2 5 1
    2 5 2
    2 4 4
    2 3 5
;
proc sql;
	create table distinct_day as select distinct day from have;
	create table distinct_subj as select distinct subject from have;
	create table subj_day as select * from distinct_subj,distinct_day;
run;
data want;
    merge have subj_day;
	by subject day;
	if missing(value) then value=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This assumes original data is sorted properly by subject and day.&lt;/P&gt;</description>
    <pubDate>Mon, 16 Dec 2019 20:59:22 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2019-12-16T20:59:22Z</dc:date>
    <item>
      <title>missing value between missing days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612198#M178574</link>
      <description>&lt;P&gt;I have the following table. What I would like to do is that if there is missing value between min and max day per subject, I would like to insert 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;subject&lt;/TD&gt;&lt;TD&gt;value&lt;/TD&gt;&lt;TD&gt;day&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&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;5&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;1&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;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;subject&lt;/TD&gt;&lt;TD&gt;value&lt;/TD&gt;&lt;TD&gt;day&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&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;5&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;1&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;0&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To be honest, i have no idea how to start. I was thinking to transpose and then assign it of 0 but it is too tedious&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2019 20:02:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612198#M178574</guid>
      <dc:creator>radhikaa4</dc:creator>
      <dc:date>2019-12-16T20:02:09Z</dc:date>
    </item>
    <item>
      <title>Re: missing value between missing days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612213#M178584</link>
      <description>&lt;P&gt;Create all possible combinations of subject and day. Merge this with the original data set. If value is missing, set value to be zero.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
    input subject value day;
    cards;
    1 5 1
    1 5 2
    1 1 3
    1 2 5
    2 5 1
    2 5 2
    2 4 4
    2 3 5
;
proc sql;
	create table distinct_day as select distinct day from have;
	create table distinct_subj as select distinct subject from have;
	create table subj_day as select * from distinct_subj,distinct_day;
run;
data want;
    merge have subj_day;
	by subject day;
	if missing(value) then value=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This assumes original data is sorted properly by subject and day.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2019 20:59:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612213#M178584</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-12-16T20:59:22Z</dc:date>
    </item>
    <item>
      <title>Re: missing value between missing days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612285#M178623</link>
      <description>This is working, but what if the days are different for each subject? For example, what if first subject had d1, d2, d4 - I would like to input d3 as 0? Not necessarily all day 5 are last&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 17 Dec 2019 01:26:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612285#M178623</guid>
      <dc:creator>radhikaa4</dc:creator>
      <dc:date>2019-12-17T01:26:49Z</dc:date>
    </item>
    <item>
      <title>Re: missing value between missing days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612331#M178654</link>
      <description>&lt;P&gt;You can use MERGE with a FIRSTOBS option to let you look ahead to find the DAY for the next record:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input subject value day;
    cards;
    1 5 1
    1 5 2
    1 1 3
    1 2 5
    2 5 1
    2 5 2
    2 4 4
    2 3 5
run;

data want (drop=nxt_:);
  merge have   have (firstobs=2 keep=day rename=(day=nxt_day));
  output;
  if nxt_day&amp;gt;day+1 then do day=day+1 to nxt_day-1;
    value=0;
    output;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This program assumes the data are sorted by subject/day.&amp;nbsp; And that every subject starts with a DAY value that is not greater than the DAY value ending the prior subject. &lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 08:29:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612331#M178654</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2019-12-17T08:29:27Z</dc:date>
    </item>
    <item>
      <title>Re: missing value between missing days</title>
      <link>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612372#M178684</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input subject value day;
    cards;
    1 5 1
    1 5 2
    1 1 3
    1 2 5
    2 5 1
    2 5 2
    2 4 4
    2 3 5
run;

data want(drop=_:);
  merge have 
  have(firstobs=2 keep=subject day rename=(subject=_subject day=_day));
  output;
  if subject=_subject then do;
    do day=day+1 to _day-1;
     value=0;
     output;
	end;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Dec 2019 12:09:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/missing-value-between-missing-days/m-p/612372#M178684</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-12-17T12:09:57Z</dc:date>
    </item>
  </channel>
</rss>

