<?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: Proc transpose output issues in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364702#M86521</link>
    <description>Could be simpler&lt;BR /&gt; by retaining the output _file_ buffer until last.customerID&lt;BR /&gt;Something like:&lt;BR /&gt;&lt;BR /&gt;Data _null_ ;&lt;BR /&gt;file "youroutputfile.csv" dsd lrecl= 32767 ;&lt;BR /&gt;Set your.data ;&lt;BR /&gt;by customerID ;&lt;BR /&gt;if first.customerID then put customerID @@ ;&lt;BR /&gt;put  AccountID AccountAmount AccountStartDate AccountEndDate AccountInfoX AccountInfoY @@&lt;BR /&gt;If last.customerID ;&lt;BR /&gt;put ;&lt;BR /&gt;run ;&lt;BR /&gt;&lt;BR /&gt;This should generate a .csv file providing what was requested, except perhaps this would have no column headers.</description>
    <pubDate>Tue, 06 Jun 2017 19:36:28 GMT</pubDate>
    <dc:creator>Peter_C</dc:creator>
    <dc:date>2017-06-06T19:36:28Z</dc:date>
    <item>
      <title>Proc transpose output issues</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364522#M86463</link>
      <description>&lt;P&gt;Hello.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a problem with the format I am required to deliver.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The data is not problematic:&amp;nbsp;&lt;/P&gt;&lt;P&gt;CustomerId, AccountID, AccountAmount, AccountStartDate, AccountEndDate, AccountInfoX, AccountInfoY, ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;filled with data like&amp;nbsp;&lt;/P&gt;&lt;P&gt;custA, Acc1, 10, 1/1-2015, 1/1-2025, 'Xa', 'Ya', ...&lt;/P&gt;&lt;P&gt;custA, Acc2, 20, 1/1-2016, 1/1-2026, 'Xb', 'Yb', ...&lt;/P&gt;&lt;P&gt;custA, Acc3, 30, 1/1-2017, 1/1-2027, 'Xc', 'Yc', ...&lt;/P&gt;&lt;P&gt;custB, Acc4, 40, 1/1-2016, 1/1-2021, 'Xd', 'Yd', ...&lt;/P&gt;&lt;P&gt;custB, Acc5, 50, 1/1-2017, 1/1-2022, 'Xe', 'Ye', ...&lt;/P&gt;&lt;P&gt;etc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The format I have to deliver is not that easy (for me at least):&lt;/P&gt;&lt;P&gt;custA, Acc1, 10, 1/1-2015, 1/1-2025, 'Xa', 'Ya', ..., Acc2, 20, 1/1-2016, 1/1-2026, 'Xb', 'Yb', ..., Acc3, 30, 1/1-2017, 1/1-2027, 'Xc', 'Yc', ...&lt;/P&gt;&lt;P&gt;custB, Acc4, 40, 1/1-2016, 1/1-2021, 'Xd', 'Yd', ..., Acc5, 50, 1/1-2017, 1/1-2022, 'Xe', 'Ye', ...&lt;/P&gt;&lt;P&gt;etc&lt;/P&gt;&lt;P&gt;Ie for each customer all accounts "to the right" as opposed to one under the other.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have looked at proc transpose, but it doesn't seem to be quite what I need.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anybody has an idea?&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;Mikkel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;version information:&lt;/P&gt;&lt;P&gt;Copyright (c) 2002-2008 by SAS Institute Inc., Cary, NC, USA.&lt;BR /&gt;SAS (r) Proprietary Software 9.2 (TS2M3)&lt;BR /&gt;Licensed to BNP PF EX LASER SERVEUR 8 CORES AIX MIGRATION, Site xxx.&lt;BR /&gt;This session is executing on the AIX 5.3 (AIX 64) platform.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2017 10:53:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364522#M86463</guid>
      <dc:creator>MikkelVejlby</dc:creator>
      <dc:date>2017-06-06T10:53:16Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose output issues</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364539#M86467</link>
      <description>&lt;P&gt;Post test data in the form of a datastep, I neither want to type it out nor guess the structure of the data. &amp;nbsp;Examples can be found in most posts.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As for your required output, it looks like a simple CSV file output, so a datastep like:&lt;/P&gt;
&lt;PRE&gt;data _null_;
  set your data;
  file "youroutput.csv";
  by customerid;
  if first.customer then put customerid;
  put catx(",",accountid,accoutnamount,accountstartdate...);
run;&lt;/PRE&gt;
&lt;P&gt;What I would advise however is to not transpose the data up. &amp;nbsp;This will make reading in the file so much harder. &amp;nbsp;The way you have the data now, proc export to CSV would be far easier for the recipient to process.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2017 11:57:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364539#M86467</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-06-06T11:57:03Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose output issues</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364590#M86481</link>
      <description>&lt;P&gt;You'll need to know something about your data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;What is the maximum number of observations per customerid&lt;/LI&gt;
&lt;LI&gt;What are the lengths of each of your character variables&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Then you can code it like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;array acc {20} $ 10 AccountID1 - AccountID20;&lt;/P&gt;
&lt;P&gt;array aca {20} AccountAmount1 - AccountAmount20;&lt;/P&gt;
&lt;P&gt;array stdt {20} $ 10 AccountStartDate1 - AccountStartDate20;&lt;/P&gt;
&lt;P&gt;array endt {20} $ 10 AccountEndDate1 - AccountEndDate20;&lt;/P&gt;
&lt;P&gt;n = 0;&lt;/P&gt;
&lt;P&gt;do until (last.customerid);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by customerid;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; n + 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; acc{n} = AccountID;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; aca{n} = AccountAmount;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; stdt{n} = AccountStartDate;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; endt{n} = AccountEndDate;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop n;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Obviously, you will need to add more arrays to the program, to account for the additional variables in your data set.&amp;nbsp; But this is a reasonable framework for transforming a SAS data set.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2017 14:28:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364590#M86481</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-06-06T14:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose output issues</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364702#M86521</link>
      <description>Could be simpler&lt;BR /&gt; by retaining the output _file_ buffer until last.customerID&lt;BR /&gt;Something like:&lt;BR /&gt;&lt;BR /&gt;Data _null_ ;&lt;BR /&gt;file "youroutputfile.csv" dsd lrecl= 32767 ;&lt;BR /&gt;Set your.data ;&lt;BR /&gt;by customerID ;&lt;BR /&gt;if first.customerID then put customerID @@ ;&lt;BR /&gt;put  AccountID AccountAmount AccountStartDate AccountEndDate AccountInfoX AccountInfoY @@&lt;BR /&gt;If last.customerID ;&lt;BR /&gt;put ;&lt;BR /&gt;run ;&lt;BR /&gt;&lt;BR /&gt;This should generate a .csv file providing what was requested, except perhaps this would have no column headers.</description>
      <pubDate>Tue, 06 Jun 2017 19:36:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364702#M86521</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2017-06-06T19:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: Proc transpose output issues</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364704#M86523</link>
      <description>Needs a semicolon ... missing from one of the trailing @@</description>
      <pubDate>Tue, 06 Jun 2017 19:38:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-transpose-output-issues/m-p/364704#M86523</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2017-06-06T19:38:27Z</dc:date>
    </item>
  </channel>
</rss>

