<?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: SAS Data Manipulation - Interesting Question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247142#M46302</link>
    <description>&lt;P&gt;&lt;SPAN&gt;I am Sorry it got posted 3 times by mistake as I wasn't sure which category is right to post in. Will avoid this duplicate submission in future. Thanks for the response and sharing your approach to this data management problem.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 31 Jan 2016 23:38:40 GMT</pubDate>
    <dc:creator>Arora_S</dc:creator>
    <dc:date>2016-01-31T23:38:40Z</dc:date>
    <item>
      <title>SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247067#M46283</link>
      <description>&lt;P&gt;&amp;nbsp;I want to transform data that looks like as below:&lt;/P&gt;
&lt;P&gt;and has following fields :--&amp;gt; patid, date on which a medical team was added/removed, type of team , and action&lt;/P&gt;
&lt;P&gt;Input data --à&lt;/P&gt;
&lt;TABLE width="236"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="39"&gt;
&lt;P&gt;patid&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="78"&gt;
&lt;P&gt;date&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="56"&gt;
&lt;P&gt;Team&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="63"&gt;
&lt;P&gt;action&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;jan-25-2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;added&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;jan-27-2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;added&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;29-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;removed&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;31-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;obgyn&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;added&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;The output that i need should be in this way: so for each date i have the team in one row and for missing dates i can populate&lt;/P&gt;
&lt;P&gt;them as below...what is the most efficient way to do this in sas base /sas ??Any help will be highly&amp;nbsp;appreciated...&lt;/P&gt;
&lt;P&gt;Thanks guys&lt;/P&gt;
&lt;P&gt;Output Data --à&lt;/P&gt;
&lt;TABLE width="300"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="38"&gt;
&lt;P&gt;patid&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="74"&gt;
&lt;P&gt;date&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="54"&gt;
&lt;P&gt;team1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;team2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="61"&gt;
&lt;P&gt;team3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;jan-25-2016&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;26-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;27-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;28-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;medical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;29-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;30-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31- jan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; surgical&amp;nbsp;&amp;nbsp; obgyn&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 19:18:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247067#M46283</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-01T19:18:01Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247090#M46288</link>
      <description>&lt;P&gt;&lt;U&gt;Do not post the same question on multiple communities.&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is a single data step solution, assuming your input dataset is called &lt;STRONG&gt;have&lt;/STRONG&gt; and your &lt;STRONG&gt;date&lt;/STRONG&gt; is a SAS date:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
set have; by patid;
prevDate = lag(date);
array teams{*} $12 teams1-teams5 ("");
if first.patid then do;
    call missing (of teams{*});
    prevDate = date;
    end;
else do;
    prevDate = intnx("DAY", prevDate, 1);
    do while(prevDate &amp;lt; date);
        output;
        prevDate = intnx("DAY", prevDate, 1);
        end;
    end;
select (action);
    when ("added") do;
        if team not in teams then do;
            do pos = 1 by 1 until(missing(teams{pos})); end;
            teams{pos} = team;
            end;
        end;
    when ("removed") do;
        pos = whichc(team, of teams{*});
        if pos &amp;gt; 0 then do;
            do i = pos+1 to dim(teams);
                teams{i-1} = teams{i};
                end;
            end;
        end;
    otherwise;
    end;
output;
drop pos i date team action;
format prevDate yymmdd10.;
rename prevDate=date;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 31 Jan 2016 04:05:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247090#M46288</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-01-31T04:05:28Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247142#M46302</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I am Sorry it got posted 3 times by mistake as I wasn't sure which category is right to post in. Will avoid this duplicate submission in future. Thanks for the response and sharing your approach to this data management problem.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 31 Jan 2016 23:38:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247142#M46302</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-01-31T23:38:40Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247152#M46309</link>
      <description>&lt;P&gt;Your output doesn't look like right .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="300"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;29-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;1111&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;30-Jan&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;surgical&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;obgyn&lt;/STRONG&gt;&lt;/P&gt;
&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;P&gt;&lt;SPAN&gt;31-Jan is after&amp;nbsp;30-Jan . How can you put obgyn &amp;nbsp; into &amp;nbsp;30-Jan?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input patid date : date11. Team $ action $;
format date  date11. ;
cards;
1111 25-jan-2016 medical added
1111 27-jan-2016 surgical added
1111 29-Jan-2016 medical removed
1111 31-Jan-2016 obgyn added
;
run;
data temp;
 merge have have(keep=patid date rename=(patid=_patid  date=_date) firstobs=2);
if _n_ eq 1 then do;
 declare hash h();
 declare hiter hi('h');
 h.definekey('team');
 h.definedata('team');
 h.definedone();
end;
if patid ne _patid then h.clear();
if action='added' then rc=h.add();
if action='removed' then rc=h.remove();
if patid=_patid then do;
 do i=date to _date-1;
 date=i;
  do while(hi.next()=0);
   output;
  end;
 end;
end;
drop rc i _: action;
run;
proc sort data=temp;by patid date Team;run;
proc transpose data=temp out=want(drop=_name_) prefix=team ;
 by patid date;
 var team;
run; &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 01 Feb 2016 02:50:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247152#M46309</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-02-01T02:50:00Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247154#M46310</link>
      <description>&lt;P&gt;Yes obgyn actually should be in 31st Jan row&amp;nbsp;along with surgical. You're right. Thanks for noticing&amp;nbsp;it and thanks for your useful innovative&amp;nbsp;response.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 18:37:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247154#M46310</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-01T18:37:44Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247245#M46321</link>
      <description>&lt;P&gt;data row is not showing up for 31st jan .i.e last row is not showing up in the output dataset... It stops at 30th jan populating that row only.. Logic is correct !!! and code is giving right results till 2nd last row only !!.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 18:41:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247245#M46321</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-01T18:41:41Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247284#M46339</link>
      <description>&lt;P&gt;Very Innovative approach especially for handling dates part ..&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 19:14:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247284#M46339</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-01T19:14:23Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247350#M46369</link>
      <description>&lt;P&gt;Yeah. But your output didn't show the last one .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input patid date : date11. Team $ action $;
format date  date11. ;
cards;
1111 25-jan-2016 medical added
1111 27-jan-2016 surgical added
1111 29-Jan-2016 medical removed
1111 31-Jan-2016 obgyn added
;
run;
data temp;
 merge have have(keep=patid date rename=(patid=_patid  date=_date) firstobs=2);
if _n_ eq 1 then do;
 declare hash h();
 declare hiter hi('h');
 h.definekey('team');
 h.definedata('team');
 h.definedone();
end;
if action='added' then rc=h.add();
if action='removed' then rc=h.remove();
if patid=_patid then do;
 do i=date to _date-1;
 date=i;
  do while(hi.next()=0);
   output;
  end;
 end;
end;
else do;
  do while(hi.next()=0);
   output;
  end;
  h.clear();
end;
drop rc i _: action;
run;
proc sort data=temp;by patid date Team;run;
proc transpose data=temp out=want(drop=_name_) prefix=team ;
 by patid date;
 var team;
run; &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 02 Feb 2016 01:15:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247350#M46369</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-02-02T01:15:35Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247615#M46443</link>
      <description>&lt;P&gt;Thanks so much, this solution is very innovative . Declare and hash are so useful in sas programs..&lt;/P&gt;</description>
      <pubDate>Tue, 02 Feb 2016 20:57:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247615#M46443</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-02T20:57:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247861#M46494</link>
      <description>&lt;P&gt;Another interesting situation:&lt;/P&gt;
&lt;P&gt;if data looks like this and first row has no data but want to fill it based on info from next row&lt;/P&gt;
&lt;P&gt;Then how hash logic will change, Example as below&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;HAVE--&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;patid&amp;nbsp;&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; team&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;action&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;24-jan&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111 25-jan-2016 medical added&lt;/P&gt;
&lt;P&gt;1111 27-jan-2016 surgical added&lt;/P&gt;
&lt;P&gt;1111 29-Jan-2016 medical removed&lt;/P&gt;
&lt;P&gt;1111 31-Jan-2016 surgical&amp;nbsp;&amp;nbsp; removed&lt;/P&gt;
&lt;P&gt;1111 04-feb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WANT --&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;patid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; team1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; team2&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24-jan &amp;nbsp;medical&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Populating this row based on next non missing observation from 25th jan data)&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25-jan medical&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26-jan &amp;nbsp;medical&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 27-jan medical&amp;nbsp;&amp;nbsp; surgical&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 28-jan medical&amp;nbsp;&amp;nbsp; surgical&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 29-jan &amp;nbsp;&amp;nbsp; surgical&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30-jan &amp;nbsp;&amp;nbsp; surgical&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31-jan &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01-feb &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02-feb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 03-feb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 04-feb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;no data basically for last rows with no info on team and action, they are populated based&amp;nbsp;on data &amp;nbsp;from 31&lt;SUP&gt;st&lt;/SUP&gt; jan data row ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Feb 2016 21:48:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247861#M46494</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-03T21:48:29Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247889#M46504</link>
      <description>&lt;P&gt;Ou, No. You have so complicated logic . what if there are multi obs has missing team at the first place , what you gonna do ?&lt;/P&gt;
&lt;P&gt;patid&amp;nbsp;&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; team&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;action&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;111 &amp;nbsp; 23-jan&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1111&amp;nbsp;24-jan&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1111 25-jan-2016 medical added&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input patid date : date11. Team $ action $;
format date  date11. ;
cards;
1111 24-jan-2016 . . 
1111 25-jan-2016 medical added
1111 27-jan-2016 surgical added
1111 29-Jan-2016 medical removed
1111 31-Jan-2016 surgical   removed
1111 04-feb-2016 . .   
;
run;
data temp;
 merge have have(keep=patid date team rename=(patid=_patid  date=_date team=_team) firstobs=2);
if _n_ eq 1 then do;
 declare hash h();
 declare hiter hi('h');
 h.definekey('team');
 h.definedata('team');
 h.definedone();
end;
if action='added' then rc=h.add();
if action='removed' then rc=h.remove();
lag_patid=lag(patid);
if patid=_patid then do;
 do i=date to _date-1;
 date=i;
  do while(hi.next()=0);
   output;
  end;
  if h.num_items=0 then do;
    if lag_patid ne patid then do;team=_team;output;end;
      else do;call missing(team);output;end;
  end;
 end;
end;
else do;
  do while(hi.next()=0);
   output;
  end;
  if h.num_items=0 then do;call missing(team);output;end;
  h.clear();
end;
drop rc i _: action;
run;
proc sort data=temp;by patid date Team;run;
proc transpose data=temp out=want(drop=_name_) prefix=team ;
 by patid date;
 var team;
run; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 01:18:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247889#M46504</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-02-04T01:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Data Manipulation - Interesting Question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247894#M46507</link>
      <description>&lt;P&gt;Not making this more complicated , just trying to learn all possible scenarios in which a data problem can be addressed.&lt;/P&gt;
&lt;P&gt;Thanks so much for sharing your approach to this problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Feb 2016 02:48:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Data-Manipulation-Interesting-Question/m-p/247894#M46507</guid>
      <dc:creator>Arora_S</dc:creator>
      <dc:date>2016-02-04T02:48:51Z</dc:date>
    </item>
  </channel>
</rss>

