<?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 Reg:moving Obs in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40703#M8331</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;input pk$ name$ no;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 a 10&lt;/P&gt;&lt;P&gt;2 a 12&lt;/P&gt;&lt;P&gt;3 a 13&lt;/P&gt;&lt;P&gt;4 b 15&lt;/P&gt;&lt;P&gt;5 b 16&lt;/P&gt;&lt;P&gt;6 c 17&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by name;&lt;/P&gt;&lt;P&gt;&amp;nbsp; count+first.name;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp1(drop=_name_) prefix=pk;&lt;/P&gt;&lt;P&gt;var pk ;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp2(drop=_name_) prefix=name;&lt;/P&gt;&lt;P&gt;var&amp;nbsp; name ;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp3(drop=_name_) prefix=no;&lt;/P&gt;&lt;P&gt;var&amp;nbsp; no;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data final(drop=count);&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain pk1 name1 no1 pk2 name2 no2 pk3 name3 no3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge temp1-temp3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by count;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 29 Jan 2012 14:51:03 GMT</pubDate>
    <dc:creator>Linlin</dc:creator>
    <dc:date>2012-01-29T14:51:03Z</dc:date>
    <item>
      <title>Reg:moving Obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40702#M8330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data test; input pk$ name$ no; cards; 1 a 10 2 a 12 3 a 13 4 b 15 5 b 16 6 c 17 I want to create 9 variables and move the obs like this if the name repeated 2 or 3 times this it should go to new variable like this In this bewlo example the name having a is repating 3 times and b is repating 2 times and name having c is only once like this i wnat the output pk name no&amp;nbsp; pk2 name2 no2&amp;nbsp; pk3 name3 no3 1&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 4&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp; 16 6&amp;nbsp; c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17&amp;nbsp; If data is messy you can refer the text&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 Jan 2012 09:35:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40702#M8330</guid>
      <dc:creator>sas_</dc:creator>
      <dc:date>2012-01-29T09:35:31Z</dc:date>
    </item>
    <item>
      <title>Reg:moving Obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40703#M8331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;input pk$ name$ no;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 a 10&lt;/P&gt;&lt;P&gt;2 a 12&lt;/P&gt;&lt;P&gt;3 a 13&lt;/P&gt;&lt;P&gt;4 b 15&lt;/P&gt;&lt;P&gt;5 b 16&lt;/P&gt;&lt;P&gt;6 c 17&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by name;&lt;/P&gt;&lt;P&gt;&amp;nbsp; count+first.name;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp1(drop=_name_) prefix=pk;&lt;/P&gt;&lt;P&gt;var pk ;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp2(drop=_name_) prefix=name;&lt;/P&gt;&lt;P&gt;var&amp;nbsp; name ;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=want out=temp3(drop=_name_) prefix=no;&lt;/P&gt;&lt;P&gt;var&amp;nbsp; no;&lt;/P&gt;&lt;P&gt;by count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data final(drop=count);&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain pk1 name1 no1 pk2 name2 no2 pk3 name3 no3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge temp1-temp3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by count;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 Jan 2012 14:51:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40703#M8331</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-01-29T14:51:03Z</dc:date>
    </item>
    <item>
      <title>Re: Reg:moving Obs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40704#M8332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;another way:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test;&lt;/P&gt;&lt;P&gt;input pk$ name$ no;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 a 10&lt;/P&gt;&lt;P&gt;2 a 12&lt;/P&gt;&lt;P&gt;3 a 13&lt;/P&gt;&lt;P&gt;4 b 15&lt;/P&gt;&lt;P&gt;5 b 16&lt;/P&gt;&lt;P&gt;6 c 17&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;data temp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by name;&lt;/P&gt;&lt;P&gt;&amp;nbsp; count+first.name;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort;&lt;/P&gt;&lt;P&gt;by count pk;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt; select max(cct) into : max &lt;/P&gt;&lt;P&gt;&amp;nbsp; from (select count(*) as cct from temp group by name);&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;%put &amp;amp;max;&lt;/P&gt;&lt;P&gt;%let max=%trim(%left(&amp;amp;max));&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt; set temp;&lt;/P&gt;&lt;P&gt; by count;&lt;/P&gt;&lt;P&gt; array p{*}$ pk1-pk&amp;amp;max;&lt;/P&gt;&lt;P&gt; array n{*}$ name1-name&amp;amp;max;&lt;/P&gt;&lt;P&gt; array o{*}&amp;nbsp; no1-no&amp;amp;max;&lt;/P&gt;&lt;P&gt; retain&amp;nbsp; pk: name: no:;&lt;/P&gt;&lt;P&gt; if first.count then ct=0;&lt;/P&gt;&lt;P&gt; ct+1;&lt;/P&gt;&lt;P&gt; p{ct}=pk;&lt;/P&gt;&lt;P&gt; n{ct}=name;&lt;/P&gt;&lt;P&gt; o{ct}=no;&lt;/P&gt;&lt;P&gt; if last.count then do;output; call missing(of p{*} n{*} o{*});end;&lt;/P&gt;&lt;P&gt; drop pk name no ct count;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt; Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; pk1&amp;nbsp;&amp;nbsp;&amp;nbsp; pk2&amp;nbsp;&amp;nbsp;&amp;nbsp; pk3&amp;nbsp;&amp;nbsp;&amp;nbsp; name1&amp;nbsp;&amp;nbsp;&amp;nbsp; name2&amp;nbsp;&amp;nbsp;&amp;nbsp; name3&amp;nbsp;&amp;nbsp;&amp;nbsp; no1&amp;nbsp;&amp;nbsp;&amp;nbsp; no2&amp;nbsp;&amp;nbsp;&amp;nbsp; no3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&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; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&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; 15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&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; c&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; 17&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jan 2012 04:03:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reg-moving-Obs/m-p/40704#M8332</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-01-30T04:03:34Z</dc:date>
    </item>
  </channel>
</rss>

