<?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 Data Manipulation in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529276#M144571</link>
    <description>&lt;P&gt;I want to manipulate my existing dataset as below:&lt;/P&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;PartNum&lt;/TD&gt;&lt;TD&gt;AltPartNum&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PartNum&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;998138&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;113&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;998138&lt;/TD&gt;&lt;TD&gt;113&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;809011&lt;/TD&gt;&lt;TD&gt;805682&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt;&lt;/TD&gt;&lt;TD&gt;809011&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;998204&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;165&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;805682&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;998204&lt;/TD&gt;&lt;TD&gt;165&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;essentially, if there is an AltPartNum in an observation, I want to add the AltPartNum as PartNum in a new observation with the original price and basically drop the AltPartNum column altogether. want to do it in one data step or proc sql.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 22 Jan 2019 21:50:45 GMT</pubDate>
    <dc:creator>jfaruqui</dc:creator>
    <dc:date>2019-01-22T21:50:45Z</dc:date>
    <item>
      <title>Data Manipulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529276#M144571</link>
      <description>&lt;P&gt;I want to manipulate my existing dataset as below:&lt;/P&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;PartNum&lt;/TD&gt;&lt;TD&gt;AltPartNum&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;PartNum&lt;/TD&gt;&lt;TD&gt;Price&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;998138&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;113&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;998138&lt;/TD&gt;&lt;TD&gt;113&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;809011&lt;/TD&gt;&lt;TD&gt;805682&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;TD&gt;&lt;span class="lia-unicode-emoji" title=":right_arrow:"&gt;➡️&lt;/span&gt;&lt;/TD&gt;&lt;TD&gt;809011&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;998204&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;165&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;805682&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;998204&lt;/TD&gt;&lt;TD&gt;165&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;essentially, if there is an AltPartNum in an observation, I want to add the AltPartNum as PartNum in a new observation with the original price and basically drop the AltPartNum column altogether. want to do it in one data step or proc sql.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 22 Jan 2019 21:50:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529276#M144571</guid>
      <dc:creator>jfaruqui</dc:creator>
      <dc:date>2019-01-22T21:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: Data Manipulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529281#M144575</link>
      <description>&lt;P&gt;This assumes there are only2 vars to check&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
  data have;
  input PartNum	AltPartNum	Price;
  cards;
998138	.	113	 	998138	113
809011	805682	20	➡️	809011	20
998204	.	165
;

data want;
set have;
if n(PartNum,AltPartNum)=2 then do;
output;
PartNum=AltPartNum;
output;
end;
else if PartNum&amp;gt;. then output;
drop AltPartNum;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 22 Jan 2019 21:59:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529281#M144575</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-01-22T21:59:45Z</dc:date>
    </item>
    <item>
      <title>Re: Data Manipulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529284#M144578</link>
      <description>&lt;P&gt;It should be simple:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want (drop=AltPartNum);&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;output;&lt;/P&gt;
&lt;P&gt;if AltPartNum &amp;gt; .;&lt;/P&gt;
&lt;P&gt;PartNum = AltPartNum;&lt;/P&gt;
&lt;P&gt;output;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The sample code assumes that the variables are numeric.&amp;nbsp; If they're character, the IF statement would read:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if AltPartNum &amp;gt; ' ';&lt;/P&gt;</description>
      <pubDate>Tue, 22 Jan 2019 22:05:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529284#M144578</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-01-22T22:05:30Z</dc:date>
    </item>
    <item>
      <title>Re: Data Manipulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529294#M144585</link>
      <description>&lt;P&gt;You could use the missing() function to cover both numeric and character cases in a unified way.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Jan 2019 23:04:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529294#M144585</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-01-22T23:04:43Z</dc:date>
    </item>
    <item>
      <title>Re: Data Manipulation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529308#M144589</link>
      <description>&lt;P&gt;I would suggest the coalescec function, which returns the left most non-missing (non-blank in the case of character variables) argument from a list of arguments:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=altpartnum);
  set have;
  partnum=coalesce(altpartnum,partnum);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If PartNum and AltPartnum are numeric variables, then use the &lt;EM&gt;&lt;STRONG&gt;coalesce&lt;/STRONG&gt;&lt;/EM&gt; function instead.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Jan 2019 01:20:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Manipulation/m-p/529308#M144589</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2019-01-23T01:20:15Z</dc:date>
    </item>
  </channel>
</rss>

