<?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: Dataset transformation and horizontal appends in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179839#M34357</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sort and transpose.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Aug 2014 12:20:31 GMT</pubDate>
    <dc:creator>LinusH</dc:creator>
    <dc:date>2014-08-29T12:20:31Z</dc:date>
    <item>
      <title>Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179838#M34356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could really use some help transforming my sets.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Consider the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dsOriginalSet;&lt;/P&gt;&lt;P&gt;input pKey&amp;nbsp; diag pid xpot xdist;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1998&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17752&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 080707&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;2727&amp;nbsp;&amp;nbsp;&amp;nbsp; E003M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 185355&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 040188&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/P&gt;&lt;P&gt;1124&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85174&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 110101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;1998&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 65510&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 030912&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;2727&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 319013&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 011096&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;4493&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 881244&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 050709&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The primary key here is pid, with some data being derivative.&lt;/P&gt;&lt;P&gt;From this set, I would like to construct a sequence of diag, using pKey as the primary key, where each occurrence of diag is sorted by date (as provided by xpot). The result from the above set should be:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dsTransformed&lt;/P&gt;&lt;P&gt;input pKey diag1 diag2 (diag3 ...);&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1998&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&lt;/P&gt;&lt;P&gt;2727&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E003M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&lt;/P&gt;&lt;P&gt;1124&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&lt;/P&gt;&lt;P&gt;4493&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G02&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The number of diag variables is arbitrary, but will not exceed 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any suggestions on how to accomplish this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 11:10:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179838#M34356</guid>
      <dc:creator>Dess</dc:creator>
      <dc:date>2014-08-29T11:10:23Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179839#M34357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sort and transpose.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 12:20:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179839#M34357</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-08-29T12:20:31Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179840#M34358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;proc sort data=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;dsOriginalSet&lt;/SPAN&gt;;&lt;/P&gt;&lt;P&gt; by pkey xpot;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;dsOriginalSet&lt;/SPAN&gt; out=want prefix=diag;&lt;/P&gt;&lt;P&gt; by pkey;&lt;/P&gt;&lt;P&gt; var diag;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 12:24:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179840#M34358</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2014-08-29T12:24:34Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179841#M34359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another solution:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have(index=(comp=(pkey xpot)));&lt;BR /&gt;input pKey&amp;nbsp; diagg $ pid @27 xpot mmddyy6. xdist;&lt;BR /&gt;format xpot date9.;&lt;BR /&gt;cards;&lt;BR /&gt;1998&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17752&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 080707&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;BR /&gt;2727&amp;nbsp;&amp;nbsp;&amp;nbsp; E003M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 185355&amp;nbsp; 040188&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;BR /&gt;1124&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85174&amp;nbsp;&amp;nbsp;&amp;nbsp; 110101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;1998&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 65510&amp;nbsp;&amp;nbsp;&amp;nbsp; 030912&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;BR /&gt;2727&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 319013&amp;nbsp;&amp;nbsp; 011096&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;BR /&gt;4493&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 881244&amp;nbsp;&amp;nbsp; 050709&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc contents;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;array diag{10} $;&lt;/P&gt;&lt;P&gt;do i=1 to 10 until(last.pkey);&lt;BR /&gt; set have;&lt;BR /&gt; by pkey xpot;&lt;BR /&gt; diag{i}=diagg;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 12:49:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179841#M34359</guid>
      <dc:creator>Loko</dc:creator>
      <dc:date>2014-08-29T12:49:09Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179842#M34360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Transpose is the obvious way, but if you want it in 1 variable you then need another datastep to append the data together.&amp;nbsp; The below uses a retained aggregate variable and outputs only at the last of the group:&lt;/P&gt;&lt;P&gt;proc sort data=dsoriginalset;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by pkey;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want (keep=pkey dstransformed);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set dsoriginalset;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by pkey;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain dstransformed;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length dstransformed $2000.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.pkey then dstransformed="";&lt;/P&gt;&lt;P&gt;&amp;nbsp; dstransformed=catx(",",strip(dstransformed),strip(diag));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last.pkey then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 12:53:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179842#M34360</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-08-29T12:53:28Z</dc:date>
    </item>
    <item>
      <title>Re: Dataset transformation and horizontal appends</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179843#M34361</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P&gt;Tom wrote:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;proc sort data=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;dsOriginalSet&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P&gt;by pkey xpot;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;proc transpose data=&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;dsOriginalSet&lt;/SPAN&gt; out=want prefix=diag;&lt;/P&gt;
&lt;P&gt;by pkey;&lt;/P&gt;
&lt;P&gt;var diag;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;Tried this, and it works great. Thank you. For some reason I got two additional variables, _NAME_ and _LABEL_, filled on every row with DIAG, but that's not a problem, only a curiosity. Thank you all for the great answers!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Aug 2014 15:07:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataset-transformation-and-horizontal-appends/m-p/179843#M34361</guid>
      <dc:creator>Dess</dc:creator>
      <dc:date>2014-08-29T15:07:19Z</dc:date>
    </item>
  </channel>
</rss>

