<?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 a delimited column into multiple columns in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351138#M63890</link>
    <description>Thank you!</description>
    <pubDate>Wed, 19 Apr 2017 04:51:57 GMT</pubDate>
    <dc:creator>cybharg</dc:creator>
    <dc:date>2017-04-19T04:51:57Z</dc:date>
    <item>
      <title>Splitting a delimited column into multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351130#M63888</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help..I have a&amp;nbsp;SAS dataset that contains all the variables in one column separated by&amp;nbsp;pipe delimiter for different columns.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sample:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Row
-------------------
ABC|2015|XYZ
ABC||XYZ&lt;/PRE&gt;&lt;P&gt;I'm using the following code to split it into different variables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data split;
   set test;
   length var1-var3 $10.;
   array var(3) $;
   do i = 1 to dim(var);
      var[i]=scan(row,i,'|');
   end;
run;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This code runs fine if all the columns have data. But if any of them are empty like the second row in the sample above, it outputs:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;var1 var2  var3
-------------------
ABC  2015  XYZ
ABC  XYZ&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need it to not treat consecutive delimiters as one. The output should be&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;var1 var2 &amp;nbsp;var3&lt;BR /&gt;----------------
ABC  2015   XYZ
ABC &amp;nbsp; &amp;nbsp; &amp;nbsp;   XYZ&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 04:37:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351130#M63888</guid>
      <dc:creator>cybharg</dc:creator>
      <dc:date>2017-04-19T04:37:07Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a delimited column into multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351135#M63889</link>
      <description>&lt;P&gt;Include the M modifier in your use of the scan function. i.e.,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data split;
   set test;
   length var1-var3 $10.;
   array var(3) $;
   do i = 1 to dim(var);
      var[i]=scan(row,i,'|','M');
   end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 04:45:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351135#M63889</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-19T04:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a delimited column into multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351138#M63890</link>
      <description>Thank you!</description>
      <pubDate>Wed, 19 Apr 2017 04:51:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351138#M63890</guid>
      <dc:creator>cybharg</dc:creator>
      <dc:date>2017-04-19T04:51:57Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a delimited column into multiple columns</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351182#M63893</link>
      <description>&lt;P&gt;Why does you data appear all in one column with a delimiter, it sounds like your previous step to import the data is not working. &amp;nbsp;Fix your import program to correctly read in the delimited data and format it correctly. &amp;nbsp; The way you are "fixing" it here in code means that a numeric variable - year - will actually be character which may make working with it more difficult than needs to be. &amp;nbsp;To import the data correctly use a datastep:&lt;/P&gt;
&lt;PRE&gt;data want;
  infile datalines dlm="|" dsd;
  input var1 $ var2 var3 $;
datalines;
ABC|2015|XYZ
ABC||XYZ
;
run;&lt;/PRE&gt;
&lt;P&gt;Of course this is a simple example (and you would replace datalines with your filename of course), you could also apply formats, informats on how to read the data (for dates etc.).&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 08:12:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-delimited-column-into-multiple-columns/m-p/351182#M63893</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-04-19T08:12:37Z</dc:date>
    </item>
  </channel>
</rss>

