<?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: Splitting columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348784#M80803</link>
    <description>&lt;P&gt;You're welcome! But take another look at my post. I just modified my post to include&amp;nbsp;the parameter to presort your data in case you need it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 10 Apr 2017 16:38:41 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2017-04-10T16:38:41Z</dc:date>
    <item>
      <title>Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348756#M80789</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Is there a simple way to split my columns so that I can get File 2 starting from File 1? Please, see the attachment.&lt;/P&gt;&lt;P&gt;Thank you in advance,&lt;/P&gt;&lt;P&gt;Steve.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;FILE 1: Initial&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Employee ID&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Appointment date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Classification&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Level&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Salary&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Number of appointments&lt;/STRONG&gt;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AS&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;40 000&lt;/TD&gt;&lt;TD&gt;2&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AS&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50 000&lt;/TD&gt;&lt;TD&gt;2&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;EC&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;100 000&lt;/TD&gt;&lt;TD&gt;1&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;50 000&lt;/TD&gt;&lt;TD&gt;3&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;60 000&lt;/TD&gt;&lt;TD&gt;3&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;80 000&lt;/TD&gt;&lt;TD&gt;3&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;EX&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;150 000&lt;/TD&gt;&lt;TD&gt;1&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;FILE 2: Expected&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Employee ID&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Appointment date_1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Class_1&lt;/TD&gt;&lt;TD&gt;Level_1&lt;/TD&gt;&lt;TD&gt;Salary_1&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Appointment date_2&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Class_2&lt;/TD&gt;&lt;TD&gt;Level_2&lt;/TD&gt;&lt;TD&gt;Salary_2&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Appointment date_3&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;Class_3&lt;/TD&gt;&lt;TD&gt;Level_3&lt;/TD&gt;&lt;TD&gt;Salary_3&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Number of appointments&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AS&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;40 000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AS&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;55 000&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;EC&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;100 000&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;50 000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;60 000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;CS&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;80 000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;EX&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;150 000&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&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;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 10 Apr 2017 15:52:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348756#M80789</guid>
      <dc:creator>sfec</dc:creator>
      <dc:date>2017-04-10T15:52:53Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348760#M80791</link>
      <description>&lt;P&gt;Sorry, please post test data as a datastep in the body of the post. &amp;nbsp;Most people will not open files from the web.&lt;/P&gt;
&lt;P&gt;To split columns you can use the split() function and supply a delimiter.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 15:47:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348760#M80791</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-04-10T15:47:32Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348779#M80798</link>
      <description>&lt;P&gt;What you want can be done with a combination of a data step and a couple of proc transpose steps, OR, if you download and run the macro at&amp;nbsp;&lt;A href="http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset" target="_blank"&gt;http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset&lt;/A&gt; , you can do it with the following call to the macro:&lt;/P&gt;
&lt;PRE&gt;%transpose(data=file1,
           out=file2, by=employee_id, guessingrows=1000,
           delimiter=_,
           var=appointment_date classification level salary,
           copy=number_of_appointments)
&lt;/PRE&gt;
&lt;P&gt;OR, if your data isn't already in employee_id order:&lt;/P&gt;
&lt;PRE&gt;%transpose(data=file1,
           out=file2, by=employee_id, guessingrows=1000,
           delimiter=_,
           var=appointment_date classification level salary,
           copy=number_of_appointments,
           sort=yes)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;HTH,&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 16:37:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348779#M80798</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-10T16:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348782#M80801</link>
      <description>Thank you!</description>
      <pubDate>Mon, 10 Apr 2017 16:36:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348782#M80801</guid>
      <dc:creator>sfec</dc:creator>
      <dc:date>2017-04-10T16:36:52Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348784#M80803</link>
      <description>&lt;P&gt;You're welcome! But take another look at my post. I just modified my post to include&amp;nbsp;the parameter to presort your data in case you need it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 16:38:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348784#M80803</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-10T16:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348788#M80805</link>
      <description>&lt;P&gt;Why would you want to do this?&amp;nbsp; Except for the calculated column (generally you should not keep calculated data like that) the first table is effectively normalized and a good data store. It will be easy to work with.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The second table is not normalized, not a good data store and not easy to work with.&amp;nbsp; Is it just for presentation?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 16:43:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348788#M80805</guid>
      <dc:creator>HB</dc:creator>
      <dc:date>2017-04-10T16:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348805#M80810</link>
      <description>&lt;P&gt;I just want to be able to extract carreer paths (longitudinal database)&amp;nbsp;with arrays after. Might be easier to work with columns than rows as everone can have a different number of positions over their carreer.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 17:24:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348805#M80810</guid>
      <dc:creator>sfec</dc:creator>
      <dc:date>2017-04-10T17:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348821#M80818</link>
      <description>&lt;PRE&gt;SAS Forum: Splitting Columns&lt;BR /&gt;&lt;BR /&gt;this message&lt;BR /&gt;https://goo.gl/Zp9ntH&lt;BR /&gt;https://communities.sas.com/t5/Base-SAS-Programming/Splitting-columns/m-p/348756&lt;BR /&gt;&lt;BR /&gt;HAVE&lt;BR /&gt;====&lt;BR /&gt;&lt;BR /&gt;Up to 40 obs WORK.HAVE total obs=7&lt;BR /&gt;&lt;BR /&gt; APPOINTMENT_ NUMBER_&lt;BR /&gt;Obs EMPLOYEEID DATE CLASS LEVEL SALARY APPOINTMENTS&lt;BR /&gt;&lt;BR /&gt; 1 1 1 AS 2 40000 2&lt;BR /&gt; 2 1 2 AS 3 50000 2&lt;BR /&gt; 3 2 1 EC 6 100000 1&lt;BR /&gt; 4 3 1 CS 1 50000 3&lt;BR /&gt; 5 3 2 CS 2 60000 3&lt;BR /&gt; 6 3 3 CS 3 80000 3&lt;BR /&gt; 7 4 1 EX 3 150000 1&lt;BR /&gt;&lt;BR /&gt;WANT&lt;BR /&gt;====&lt;BR /&gt;&lt;BR /&gt;Up to 40 obs WORK.WANT total obs=4&lt;BR /&gt;&lt;BR /&gt; APPOINTMENT&lt;BR /&gt;EMPLOYEEID DATE_1 DATE_2 DATE_3 CLASS_1 CLASS_2 CLASS_3 LEVEL_1 LEVEL_2 LEVEL_3 SALARY_1 SALARY_2 SALARY_3&lt;BR /&gt;&lt;BR /&gt; 1 1 2 . AS AS 2 3 . 40000 50000 .&lt;BR /&gt; 2 1 . . EC 6 . . 100000 . .&lt;BR /&gt; 3 1 2 3 CS CS CS 1 2 3 50000 60000 80000&lt;BR /&gt; 4 1 . . EX 3 . . 150000 . .&lt;BR /&gt;&lt;BR /&gt;WORKING CODE&lt;BR /&gt;============&lt;BR /&gt;&lt;BR /&gt; If uncomfortable or if this is production you can move the DOSUBL out&lt;BR /&gt;&lt;BR /&gt; DOSUBL&lt;BR /&gt; proc sql;&lt;BR /&gt; select max(grpcnt) into :grpCnt separated by "" from&lt;BR /&gt; (select count(employeeid) as grpcnt from have group by employeeID)&lt;BR /&gt; ;quit;&lt;BR /&gt;&lt;BR /&gt; array cls[&amp;amp;grpcnt] $ Class_1 - Class_&amp;amp;grpCnt;&lt;BR /&gt;&lt;BR /&gt;* _ _ _&lt;BR /&gt; _ __ ___ __ _| | _____ __| | __ _| |_ __ _&lt;BR /&gt;| '_ ` _ \ / _` | |/ / _ \_____ / _` |/ _` | __/ _` |&lt;BR /&gt;| | | | | | (_| | &amp;lt; __/_____| (_| | (_| | || (_| |&lt;BR /&gt;|_| |_| |_|\__,_|_|\_\___| \__,_|\__,_|\__\__,_|&lt;BR /&gt;&lt;BR /&gt;;&lt;BR /&gt;&lt;BR /&gt;data have;&lt;BR /&gt;input&lt;BR /&gt;EmployeeID Appointment_date Class $ Level Salary Number_appointments;&lt;BR /&gt;cards4;&lt;BR /&gt;1 1 AS 2 40000 2&lt;BR /&gt;1 2 AS 3 50000 2&lt;BR /&gt;2 1 EC 6 100000 1&lt;BR /&gt;3 1 CS 1 50000 3&lt;BR /&gt;3 2 CS 2 60000 3&lt;BR /&gt;3 3 CS 3 80000 3&lt;BR /&gt;4 1 EX 3 150000 1&lt;BR /&gt;;;;;&lt;BR /&gt;run;quit;&lt;BR /&gt;&lt;BR /&gt;* _ _ _&lt;BR /&gt; ___ ___ | |_ _| |_(_) ___ _ __&lt;BR /&gt;/ __|/ _ \| | | | | __| |/ _ \| '_ \&lt;BR /&gt;\__ \ (_) | | |_| | |_| | (_) | | | |&lt;BR /&gt;|___/\___/|_|\__,_|\__|_|\___/|_| |_|&lt;BR /&gt;&lt;BR /&gt;;&lt;BR /&gt;&lt;BR /&gt;%symdel rc grpcnt / nowarn;&lt;BR /&gt;data want;&lt;BR /&gt;&lt;BR /&gt; * meta data;&lt;BR /&gt; if _n_ =0 then do;&lt;BR /&gt; %let rc=%sysfunc(dosubl('&lt;BR /&gt; proc sql;&lt;BR /&gt; select max(grpcnt) into :grpCnt separated by "" from&lt;BR /&gt; (select count(employeeid) as grpcnt from have group by employeeID)&lt;BR /&gt; ;quit;&lt;BR /&gt; '));&lt;BR /&gt; retain rc &amp;amp;rc;&lt;BR /&gt; end;&lt;BR /&gt;&lt;BR /&gt; * if sql fails;&lt;BR /&gt; if rc ne 0 then stop;&lt;BR /&gt;&lt;BR /&gt; retain&lt;BR /&gt; cnt 0&lt;BR /&gt; employeeid&lt;BR /&gt; Appointment_date_1-Appointment_date_&amp;amp;grpCnt&lt;BR /&gt; Class_1 - Class_&amp;amp;grpCnt&lt;BR /&gt; Level_1 - Level_&amp;amp;grpCnt&lt;BR /&gt; Salary_1 - Salary_&amp;amp;grpCnt;&lt;BR /&gt; ;&lt;BR /&gt;&lt;BR /&gt; set have;&lt;BR /&gt;&lt;BR /&gt; by employeeid;&lt;BR /&gt; array dte[&amp;amp;grpcnt] Appointment_date_1-Appointment_date_&amp;amp;grpCnt;&lt;BR /&gt; array cls[&amp;amp;grpcnt] $ Class_1 - Class_&amp;amp;grpCnt;&lt;BR /&gt; array lvl[&amp;amp;grpcnt] Level_1 - Level_&amp;amp;grpCnt;&lt;BR /&gt; array pay[&amp;amp;grpcnt] Salary_1 - Salary_&amp;amp;grpCnt;&lt;BR /&gt; cnt=cnt+1;&lt;BR /&gt; dte[cnt]=Appointment_date;&lt;BR /&gt; cls[cnt]=Class;&lt;BR /&gt; lvl[cnt]=Level;&lt;BR /&gt; pay[cnt]=Salary;&lt;BR /&gt; if last.employeeid then do;&lt;BR /&gt; output;&lt;BR /&gt; call missing(of _all_);&lt;BR /&gt; cnt=0;&lt;BR /&gt; rc=0;&lt;BR /&gt; end;&lt;BR /&gt; drop rc cnt Appointment_date Class Level Salary Number_appointments;&lt;BR /&gt;&lt;BR /&gt;run;quit;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 10 Apr 2017 18:16:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348821#M80818</guid>
      <dc:creator>rogerjdeangelis</dc:creator>
      <dc:date>2017-04-10T18:16:49Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348822#M80819</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;SAS Forum: Splitting Columns

formatting problem above

this message
https://goo.gl/Zp9ntH
https://communities.sas.com/t5/Base-SAS-Programming/Splitting-columns/m-p/348756

HAVE
====

Up to 40 obs WORK.HAVE total obs=7

                     APPOINTMENT_                                   NUMBER_
Obs    EMPLOYEEID        DATE        CLASS    LEVEL    SALARY    APPOINTMENTS

 1          1              1          AS        2       40000          2
 2          1              2          AS        3       50000          2
 3          2              1          EC        6      100000          1
 4          3              1          CS        1       50000          3
 5          3              2          CS        2       60000          3
 6          3              3          CS        3       80000          3
 7          4              1          EX        3      150000          1

WANT
====

Up to 40 obs WORK.WANT total obs=4

               APPOINTMENT
EMPLOYEEID DATE_1 DATE_2 DATE_3 CLASS_1 CLASS_2 CLASS_3 LEVEL_1 LEVEL_2 LEVEL_3 SALARY_1 SALARY_2 SALARY_3

     1        1      2      .     AS      AS               2       3       .      40000    50000        .
     2        1      .      .     EC                       6       .       .     100000        .        .
     3        1      2      3     CS      CS      CS       1       2       3      50000    60000    80000
     4        1      .      .     EX                       3       .       .     150000        .        .

WORKING CODE
============

  If uncomfortable or if this is production you can move the DOSUBL out

  DOSUBL
    proc sql;
      select max(grpcnt) into :grpCnt separated by "" from
      (select count(employeeid) as grpcnt from have group by employeeID)
    ;quit;

    array cls[&amp;amp;grpcnt] $ Class_1  -  Class_&amp;amp;grpCnt;

*                _                  _       _
 _ __ ___   __ _| | _____        __| | __ _| |_ __ _
| '_ ` _ \ / _` | |/ / _ \_____ / _` |/ _` | __/ _` |
| | | | | | (_| |   &amp;lt;  __/_____| (_| | (_| | || (_| |
|_| |_| |_|\__,_|_|\_\___|      \__,_|\__,_|\__\__,_|

;

data have;
input
EmployeeID Appointment_date Class $ Level Salary Number_appointments;
cards4;
1 1 AS 2 40000 2
1 2 AS 3 50000 2
2 1 EC 6 100000 1
3 1 CS 1 50000 3
3 2 CS 2 60000 3
3 3 CS 3 80000 3
4 1 EX 3 150000 1
;;;;
run;quit;

*          _       _   _
 ___  ___ | |_   _| |_(_) ___  _ __
/ __|/ _ \| | | | | __| |/ _ \| '_ \
\__ \ (_) | | |_| | |_| | (_) | | | |
|___/\___/|_|\__,_|\__|_|\___/|_| |_|

;

%symdel rc grpcnt / nowarn;
data want;

  * meta data;
  if _n_ =0 then do;
   %let rc=%sysfunc(dosubl('
       proc sql;
         select max(grpcnt) into :grpCnt separated by "" from
         (select count(employeeid) as grpcnt from have group by employeeID)
       ;quit;
     '));
     retain rc &amp;amp;rc;
  end;

  * if sql fails;
  if rc ne 0 then stop;

  retain
    cnt 0
    employeeid
    Appointment_date_1-Appointment_date_&amp;amp;grpCnt
    Class_1  -  Class_&amp;amp;grpCnt
    Level_1  -  Level_&amp;amp;grpCnt
    Salary_1 -  Salary_&amp;amp;grpCnt;
  ;

  set have;

  by employeeid;
  array dte[&amp;amp;grpcnt]   Appointment_date_1-Appointment_date_&amp;amp;grpCnt;
  array cls[&amp;amp;grpcnt] $ Class_1  -  Class_&amp;amp;grpCnt;
  array lvl[&amp;amp;grpcnt]   Level_1  -  Level_&amp;amp;grpCnt;
  array pay[&amp;amp;grpcnt]   Salary_1 -  Salary_&amp;amp;grpCnt;
  cnt=cnt+1;
  dte[cnt]=Appointment_date;
  cls[cnt]=Class;
  lvl[cnt]=Level;
  pay[cnt]=Salary;
  if last.employeeid then do;
         output;
         call missing(of _all_);
         cnt=0;
         rc=0;
  end;
  drop rc cnt  Appointment_date Class  Level Salary Number_appointments;

run;quit;






&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 10 Apr 2017 18:17:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348822#M80819</guid>
      <dc:creator>rogerjdeangelis</dc:creator>
      <dc:date>2017-04-10T18:17:29Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348847#M80831</link>
      <description>Thank you very much!</description>
      <pubDate>Mon, 10 Apr 2017 19:41:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348847#M80831</guid>
      <dc:creator>sfec</dc:creator>
      <dc:date>2017-04-10T19:41:02Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348894#M80854</link>
      <description>&lt;P&gt;"I just want to be able to extract carreer paths (longitudinal database)&amp;nbsp;with arrays after. Might be easier to work with columns than rows as everone can have a different number of positions over their carreer."&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;proc sql;
   create table career_path as 
        select *
        from your_first_table
        where employee_id = 1&lt;BR /&gt;        order by appointment_date;&lt;BR /&gt;quit;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;is not the career path of employee 1? &lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 20:59:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Splitting-columns/m-p/348894#M80854</guid>
      <dc:creator>HB</dc:creator>
      <dc:date>2017-04-10T20:59:28Z</dc:date>
    </item>
  </channel>
</rss>

