<?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 add rows to the data set? in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321617#M9248</link>
    <description>&lt;P&gt;Thanks! It works.&lt;/P&gt;</description>
    <pubDate>Thu, 29 Dec 2016 18:27:43 GMT</pubDate>
    <dc:creator>Tiny_Kane</dc:creator>
    <dc:date>2016-12-29T18:27:43Z</dc:date>
    <item>
      <title>how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321466#M9238</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have an existing data set looks like the first listing below. How to add rows to the data set to make it look like the second listing? All red texts were added rows. The second listing will be, each patient will have death month+1 rows, index month shoul be from 0 to the death month. All added costs are 0. Thanks in advance!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="349"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;patient ID&lt;/TD&gt;
&lt;TD width="99"&gt;death month&lt;/TD&gt;
&lt;TD width="122"&gt;index month&lt;/TD&gt;
&lt;TD width="64"&gt;cost&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;20&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;20&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;TD&gt;10&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;3&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;4&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="349"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;patient ID&lt;/TD&gt;
&lt;TD width="99"&gt;death month&lt;/TD&gt;
&lt;TD width="122"&gt;index month&lt;/TD&gt;
&lt;TD width="64"&gt;cost&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;20&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;3&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;20&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&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;TD&gt;10&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;3&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;4&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;5&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Wed, 28 Dec 2016 19:36:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321466#M9238</guid>
      <dc:creator>Tiny_Kane</dc:creator>
      <dc:date>2016-12-28T19:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321479#M9239</link>
      <description>&lt;P&gt;Your data set is already in sorted order, so this would be a fairly direct way:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data all_months;&lt;/P&gt;
&lt;P&gt;retain cost 0;&lt;/P&gt;
&lt;P&gt;set have (drop=cost);&lt;/P&gt;
&lt;P&gt;by patient_id index_month;&lt;/P&gt;
&lt;P&gt;if last.patient_id;&lt;/P&gt;
&lt;P&gt;do index_month = 0 to death_month;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;merge all_months have;&lt;/P&gt;
&lt;P&gt;by patient_id index_month;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The top DATA step creates all the months needed, and the bottom DATA step merges that together with the existing data. &amp;nbsp;It's important to mention ALL_MONTHS first in the MERGE statement, so the values that you already have for COST will overwrite any 0 values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(Note a couple of revisions to the program.)&lt;/P&gt;</description>
      <pubDate>Wed, 28 Dec 2016 20:53:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321479#M9239</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-12-28T20:53:08Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321537#M9245</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards truncover expandtabs;
input ID	death	index cost;
cards;
1	3	0	20
1	3	1	10
1	3	3	20
2	5	2	10
2	5	3	5
2	5	4	10
;
run;
proc sql;
create table temp as
 select distinct id,death from have;
quit;
data key;
 set temp;
 do index=0 to death;
  output;
 end;
run;
proc sql;
create table want as
 select a.*,coalesce(b.cost,0) as cost
  from key as a left join have as b
   on a.id=b.id and a.death=b.death and a.index=b.index;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 29 Dec 2016 04:29:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321537#M9245</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-12-29T04:29:33Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321543#M9246</link>
      <description>&lt;P&gt;Do it in a single data step:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards truncover expandtabs;
input ID	death	index cost;
cards;
1	3	0	20
1	3	1	10
1	3	3	20
2	5	2	10
2	5	3	5
2	5	4	10
;

data want;
index = -1;
do until(last.id);
    set have(rename=(index=nextIndex cost=nextCost));
    by id;
    do index = index+1 to nextIndex-1;
        cost = 0; output;
        end;
    index = nextIndex; cost = nextCost; output;
    end;
do index = nextIndex+1 to death;
    cost = 0; output;
    end;
drop next: ;
run;

proc print noobs data=want; run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 29 Dec 2016 05:17:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321543#M9246</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2016-12-29T05:17:35Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321617#M9248</link>
      <description>&lt;P&gt;Thanks! It works.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Dec 2016 18:27:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321617#M9248</guid>
      <dc:creator>Tiny_Kane</dc:creator>
      <dc:date>2016-12-29T18:27:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321618#M9249</link>
      <description>&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 29 Dec 2016 18:28:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321618#M9249</guid>
      <dc:creator>Tiny_Kane</dc:creator>
      <dc:date>2016-12-29T18:28:05Z</dc:date>
    </item>
    <item>
      <title>Re: how to add rows to the data set?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321619#M9250</link>
      <description>&lt;P&gt;Thank you!!&lt;/P&gt;</description>
      <pubDate>Thu, 29 Dec 2016 18:29:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/how-to-add-rows-to-the-data-set/m-p/321619#M9250</guid>
      <dc:creator>Tiny_Kane</dc:creator>
      <dc:date>2016-12-29T18:29:21Z</dc:date>
    </item>
  </channel>
</rss>

