<?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: how to splitting an unstructured column into multiple columns? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352386#M273796</link>
    <description>&lt;P&gt;This would extract the fields into a long format dataset:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines4 truncover;
input fund $ txt $500. ;
datalines4;
Fund1  [2011-07-01--2013-07-31] Richard Glass
Fund2  [2011-06-30--2015-05-15] William M. Noonan; [2011-06-30--2015-05-15] Philip A. Noonan ;  [2011-06-30--2015-05-15] David Canal
Fund3  [2012-01-03--] Robert E. Hall; [2012-01-03--] Keith A. Lee; [2012-01-03--] Kempton M. Ingersol; [2012-01-03--2015-03-01] Amy Y. Zhang; [2013-12-31--] Damien Davis; [2014-12-31--] Andrew J. Fones
;;;;

data want;
if not prxId then prxId + prxParse("/\[(\d{4}-\d{2}-\d{2})--(\d{4}-\d{2}-\d{2})?\] ([^[;]+)/i");
set have;
start = 1;
stop = length(txt);
call prxnext(prxId, start, stop, txt, pos, len);
do No = 1 by 1 while (pos&amp;gt;0);
    entry = prxposn(prxId, 1, txt);
    exit = prxposn(prxId, 2, txt);
    manager = prxposn(prxId, 3, txt);
    output;
    call prxnext(prxId, start, stop, txt, pos, len);
    end;
drop prxId start stop pos len txt;
run;

proc print; run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Sat, 22 Apr 2017 03:42:53 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2017-04-22T03:42:53Z</dc:date>
    <item>
      <title>how to splitting an unstructured column into multiple columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352379#M273795</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am having trouble spliiting some unstructured data.&lt;/P&gt;&lt;P&gt;My data looks like this&lt;/P&gt;&lt;P&gt;&lt;U&gt;ColA&lt;/U&gt;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;U&gt;ColB&lt;/U&gt;&lt;/P&gt;&lt;P&gt;Fund1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [2011-07-01--2013-07-31] Richard Glass&lt;BR /&gt;Fund2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[2011-06-30--2015-05-15] William M. Noonan; [2011-06-30--2015-05-15] Philip A. Noonan ; &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[2011-06-30--2015-05-15] David Canal&lt;BR /&gt;Fund3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[2012-01-03--] Robert E. Hall; [2012-01-03--] Keith A. Lee; [2012-01-03--] Kempton M. Ingersol; [2012-01-03--2015- &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;03-01] Amy Y. Zhang; [2013-12-31--] Damien Davis; [2014-12-31--] Andrew J. Fones&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I want my data to look like this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;ColA&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;U&gt;Entry1&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;U&gt;Exit1&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;U&gt;Manager1&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;U&gt;Entry2&lt;/U&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;U&gt;Exit2&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;U&gt;Manager2&lt;/U&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Entry3,exit3, Manager3 and so on&lt;/P&gt;&lt;P&gt;Fund1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20110701 &amp;nbsp; &amp;nbsp; 20130731 &amp;nbsp;Richard Glass &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Fund2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20110630 &amp;nbsp; &amp;nbsp; 20150515 &amp;nbsp; William M. Noonan &amp;nbsp;20110630 20150515 &amp;nbsp;Phili A.Noonan&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Currently I am using a scan function to split using delimiters,but it is taking too long&lt;/P&gt;&lt;P&gt;I am trying something like this, but i feel like I need to repeat this code too much and it is not optimal.&lt;/P&gt;&lt;P&gt;data split;&lt;BR /&gt;set ms_fundmanager;&lt;BR /&gt;length v1-v10 $100.;&lt;BR /&gt;array v(10) $;&lt;BR /&gt;do i = 1 to dim(v);&lt;BR /&gt;v[i]=scan(manager_history,i,';','M');&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data split1;&lt;BR /&gt;set split;&lt;BR /&gt;length av1-av2 $100.;&lt;BR /&gt;array av(2) $;&lt;BR /&gt;do i = 1 to dim(av);&lt;BR /&gt;av[i]=scan(v1,i,']','M');&lt;BR /&gt;end;&lt;BR /&gt;rename av2 = manager1;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Sat, 22 Apr 2017 03:06:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352379#M273795</guid>
      <dc:creator>Ramani</dc:creator>
      <dc:date>2017-04-22T03:06:39Z</dc:date>
    </item>
    <item>
      <title>Re: how to splitting an unstructured column into multiple columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352386#M273796</link>
      <description>&lt;P&gt;This would extract the fields into a long format dataset:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines4 truncover;
input fund $ txt $500. ;
datalines4;
Fund1  [2011-07-01--2013-07-31] Richard Glass
Fund2  [2011-06-30--2015-05-15] William M. Noonan; [2011-06-30--2015-05-15] Philip A. Noonan ;  [2011-06-30--2015-05-15] David Canal
Fund3  [2012-01-03--] Robert E. Hall; [2012-01-03--] Keith A. Lee; [2012-01-03--] Kempton M. Ingersol; [2012-01-03--2015-03-01] Amy Y. Zhang; [2013-12-31--] Damien Davis; [2014-12-31--] Andrew J. Fones
;;;;

data want;
if not prxId then prxId + prxParse("/\[(\d{4}-\d{2}-\d{2})--(\d{4}-\d{2}-\d{2})?\] ([^[;]+)/i");
set have;
start = 1;
stop = length(txt);
call prxnext(prxId, start, stop, txt, pos, len);
do No = 1 by 1 while (pos&amp;gt;0);
    entry = prxposn(prxId, 1, txt);
    exit = prxposn(prxId, 2, txt);
    manager = prxposn(prxId, 3, txt);
    output;
    call prxnext(prxId, start, stop, txt, pos, len);
    end;
drop prxId start stop pos len txt;
run;

proc print; run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 22 Apr 2017 03:42:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352386#M273796</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2017-04-22T03:42:53Z</dc:date>
    </item>
    <item>
      <title>Re: how to splitting an unstructured column into multiple columns?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352396#M273797</link>
      <description>&lt;P&gt;Thank you, &amp;nbsp;this works wonderfully well. I did not know about those functions, I will learn about them.&lt;/P&gt;</description>
      <pubDate>Sat, 22 Apr 2017 04:08:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-splitting-an-unstructured-column-into-multiple-columns/m-p/352396#M273797</guid>
      <dc:creator>Ramani</dc:creator>
      <dc:date>2017-04-22T04:08:28Z</dc:date>
    </item>
  </channel>
</rss>

