<?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: Duplicating one row into multiple rows but changing one variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602954#M174632</link>
    <description>&lt;P&gt;Thanks for your quick reply! I'll test it out later this afternoon and get back to you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 09 Nov 2019 00:58:02 GMT</pubDate>
    <dc:creator>comm77</dc:creator>
    <dc:date>2019-11-09T00:58:02Z</dc:date>
    <item>
      <title>Duplicating one row into multiple rows but changing one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602951#M174630</link>
      <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm having trouble transforming the following dataset into the shown target output. I would like to split each ID into its respective whole month period between the start date and the end date. The actual dataset I'm using has about 20 variables, most of which are factors like colour, size and type which I'd like to remain the same in each of the new transformed row (like the "Colour" column in the example below).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Dataset&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; &amp;nbsp; Start_dt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End_dt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Colour&amp;nbsp; &amp;nbsp; &amp;nbsp;Size&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Type&amp;nbsp; &amp;nbsp;...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Large&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Flex&amp;nbsp; &amp;nbsp; &amp;nbsp;...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Green&amp;nbsp; &amp;nbsp; &amp;nbsp; Medium&amp;nbsp; &amp;nbsp;Soft&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Want&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; &amp;nbsp; Start_dt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End_dt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Period&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Colour&amp;nbsp; &amp;nbsp;...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp; Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Jul17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Aug17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Sep17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Oct17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Nov17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Dec17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Jan18&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Feb18&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Mar18&amp;nbsp; &amp;nbsp; &amp;nbsp; Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp;13May17&amp;nbsp; &amp;nbsp; &amp;nbsp;13May18&amp;nbsp; &amp;nbsp; &amp;nbsp;13Apr18&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Blue&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Oct16&amp;nbsp; &amp;nbsp; &amp;nbsp; Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Nov16&amp;nbsp; &amp;nbsp; &amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Dec16&amp;nbsp; &amp;nbsp; &amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Jan17&amp;nbsp; &amp;nbsp; &amp;nbsp; Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Feb17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Mar17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17Apr17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp;17Sep16&amp;nbsp; &amp;nbsp; &amp;nbsp;5Jun17&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;17May17&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Green&amp;nbsp; &amp;nbsp; ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My initial thought process was to first temporarily create a variable n to count the number of whole months between the two date variables then apply the do statement to create the monthly increment variable, period and using the retain function to duplicate the original row values into the new row.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data have1;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;n=intck('month', Start_dt, End_dt);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set have1;&lt;/P&gt;&lt;P&gt;retain period;&lt;/P&gt;&lt;P&gt;if n ge 1 then do n = 1&amp;nbsp; to n;&lt;/P&gt;&lt;P&gt;period = intck('month',&amp;nbsp;Start_dt, n, 's');&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Its my first time using the retain function (to keep all the original constant in the new rows) but I can't seem to duplicate rows at all (probably something I'm doing wrong). I'd like to know your thoughts on my approach and if you know how to do the above in a simpler way. Appreciate your time and effort in helping me!&lt;/P&gt;</description>
      <pubDate>Sat, 09 Nov 2019 00:41:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602951#M174630</guid>
      <dc:creator>comm77</dc:creator>
      <dc:date>2019-11-09T00:41:36Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicating one row into multiple rows but changing one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602953#M174631</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID   ( Start_dt       End_dt ) (:date7.)      (Colour     Size         Type ) ($);
format Start_dt       End_dt  date9.;
cards; 
1     13May17     13May18    Blue        Large       Flex     ...
2     17Sep16     5Jun17       Green      Medium   Soft    ...
;


data want;
set have;
period=Start_dt;
do while(period&amp;lt;End_dt);
 output;
 period=intnx('mon',Period,1,'s');
end;
format period date9.;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 09 Nov 2019 00:49:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602953#M174631</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-11-09T00:49:29Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicating one row into multiple rows but changing one variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602954#M174632</link>
      <description>&lt;P&gt;Thanks for your quick reply! I'll test it out later this afternoon and get back to you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Nov 2019 00:58:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicating-one-row-into-multiple-rows-but-changing-one-variable/m-p/602954#M174632</guid>
      <dc:creator>comm77</dc:creator>
      <dc:date>2019-11-09T00:58:02Z</dc:date>
    </item>
  </channel>
</rss>

