<?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: Duplicate rows in a data procedure in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594960#M18153</link>
    <description>&lt;P&gt;Other lines are just recoding of variables, such as&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if sex=9 then delete;&lt;BR /&gt;sex=sex-1;&lt;/P&gt;</description>
    <pubDate>Wed, 09 Oct 2019 06:52:03 GMT</pubDate>
    <dc:creator>Demographer</dc:creator>
    <dc:date>2019-10-09T06:52:03Z</dc:date>
    <item>
      <title>Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594953#M18149</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I'd like to duplicate rows in my dataset that have a weight over a certain threshold (1000 for instance), and then reduce the weight by 2.&lt;/P&gt;
&lt;P&gt;For instance, this:&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" style="height: 15.0pt; width: 48pt;"&gt;PERWT&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;SEX&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;agegr&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;edu&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;region&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;1100&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;65&lt;/TD&gt;
&lt;TD&gt;e1&lt;/TD&gt;
&lt;TD&gt;Andhra Prades&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;294.9&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;40&lt;/TD&gt;
&lt;TD&gt;e3&lt;/TD&gt;
&lt;TD&gt;Andhra Prades&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Should be&amp;nbsp; like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" style="height: 15.0pt; width: 48pt;"&gt;PERWT&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;SEX&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;agegr&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;edu&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;region&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;550&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;30&lt;/TD&gt;
&lt;TD&gt;e1&lt;/TD&gt;
&lt;TD&gt;Andhra Prades&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;550&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;30&lt;/TD&gt;
&lt;TD&gt;e1&lt;/TD&gt;
&lt;TD&gt;Andhra Prades&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;294.9&lt;/TD&gt;
&lt;TD align="right"&gt;0&lt;/TD&gt;
&lt;TD align="right"&gt;40&lt;/TD&gt;
&lt;TD&gt;e3&lt;/TD&gt;
&lt;TD&gt;Andhra Prades&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I know I can do it with the output statement, but I don't really get how this works.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 06:35:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594953#M18149</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2019-10-09T06:35:48Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594954#M18150</link>
      <description>&lt;P&gt;like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input PERWT SEX agegr edu $ region :$20.;
datalines;
1100 0 65 e1 AndhraPrades
294.9 0 40 e3 AndhraPrades
;

data want;
    set have;
    if PERWT ge 1000 then do;
        PERWT=PERWT/2;
        output;
    end;
    output;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;PERWT SEX agegr edu region
550   0   65    e1  AndhraPrades
550   0   65    e1  AndhraPrades
294.9 0   40    e3  AndhraPrades&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 06:41:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594954#M18150</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-10-09T06:41:34Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594956#M18151</link>
      <description>It works, but only when those lines are the last ones before runs; If there are other commands below, it doesn't work (values become missing).</description>
      <pubDate>Wed, 09 Oct 2019 06:43:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594956#M18151</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2019-10-09T06:43:30Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594957#M18152</link>
      <description>&lt;P&gt;What other commands/statements? It's hard to write working code when I don't know what it should work for &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In any case, you could simply write a new data step and apply your logic there if your data is not very large.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 06:47:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594957#M18152</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-10-09T06:47:43Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594960#M18153</link>
      <description>&lt;P&gt;Other lines are just recoding of variables, such as&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if sex=9 then delete;&lt;BR /&gt;sex=sex-1;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 06:52:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594960#M18153</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2019-10-09T06:52:03Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594961#M18154</link>
      <description>&lt;P&gt;Ok. As I said, you can simply write a new data step and apply the logic there. For the two posted statements, they can easily be applied before the do loop as&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input PERWT SEX agegr edu $ region :$20.;
datalines;
1100 0 65 e1 AndhraPrades
294.9 0 40 e3 AndhraPrades
294.9 9 40 e3 AndhraPrades
;

data want;
    set have;
    if sex ne 9;
    sex=sex-1;
    if PERWT ge 1000 then do;
        PERWT=PERWT/2;
        output;
    end;
    output;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 09 Oct 2019 06:55:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594961#M18154</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-10-09T06:55:47Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate rows in a data procedure</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594966#M18155</link>
      <description>&lt;P&gt;If I want to create a loop that will make that a duplicate the row and divided by 2 the weight as long as the weight is &amp;gt;1000, what should I do?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data work.want;&lt;BR /&gt;set work.have;&lt;BR /&gt;do while (perwt&amp;gt;1000);&lt;BR /&gt;perwt=perwt/2;&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;output;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;However, the result is not what expected. If perwt is 10000, the value of perwt for duplicated lines will be:&lt;/P&gt;
&lt;P&gt;5000&lt;/P&gt;
&lt;P&gt;2500&lt;/P&gt;
&lt;P&gt;775&lt;/P&gt;
&lt;P&gt;775&lt;/P&gt;
&lt;P&gt;What I'd want is&amp;nbsp;10 lines with a weight of 1000 for each of them.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 07:17:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Duplicate-rows-in-a-data-procedure/m-p/594966#M18155</guid>
      <dc:creator>Demographer</dc:creator>
      <dc:date>2019-10-09T07:17:58Z</dc:date>
    </item>
  </channel>
</rss>

