<?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 variable with pipe deliminators into multiple variables in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677652#M79376</link>
    <description>&lt;P&gt;You should post the full log. I can't guess what is in line 1803 of the log;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest to add some lines to the code for debug. Those lines should be removed at final run.&lt;/P&gt;
&lt;P&gt;Please copy the full log, in any issue, using the &amp;lt;/&amp;gt; icon window:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
 set drop_dup;
    length vx var1-var15 $20;
    array varx $ var1-var15;
    i=1;
/*DBG*/ putlog duplicate2=;
    do until (missing(vx));
         vx= scan(duplicate2,i,'|');
/*DBG*/ putlog i= vx= ;
         if not missing(vx) then varx(i)= vx;
         i+1;
      end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 19 Aug 2020 02:08:14 GMT</pubDate>
    <dc:creator>Shmuel</dc:creator>
    <dc:date>2020-08-19T02:08:14Z</dc:date>
    <item>
      <title>Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677616#M79372</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a field that lists all duplicates a case number has (can be anything from 1 duplicate to 15 duplicates). These are in one variable (titled duplicates) separated by |. I want to try to split this duplicate field into 15 fields, with each new field having one duplicate case number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am new to SAS and have been working at this for a while and can't seem to figure it out. Is there any advice for getting this done? Below is an example of what one of the duplicate observations look like.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;duplicate= MFR-1Q19-0039|MFR-2Q19-0081|MFR-2Q19-0082&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ideally id like:&amp;nbsp; &amp;nbsp;var1=MFR-1Q19-0039&amp;nbsp; var2=MFR-2Q19-0081&amp;nbsp; &amp;nbsp;var3=MFR-1Q19-0082&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Tue, 18 Aug 2020 19:52:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677616#M79372</guid>
      <dc:creator>dgaribal</dc:creator>
      <dc:date>2020-08-18T19:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677630#M79374</link>
      <description>&lt;P&gt;Use next code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have;
      length var1-var15 $15;   /* adapt to max length */
      array varx  $   var1-var15;
       i =1;
       do until (missing(vx));
            vx = scan(duplicate,i,'|');
            if not missing(vx) then varx(i) = vx;
           i+1;
      end;
     drop vx i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 18 Aug 2020 20:16:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677630#M79374</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-08-18T20:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677648#M79375</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/88384"&gt;@Shmuel&lt;/a&gt;&amp;nbsp;Thank you for your help! I ran this code and it creates the variables, but does not split the duplicate values into the newly created variables/columns (new columns are blank).&amp;nbsp; Any ideas? Some of the duplicate fields have more duplicates than others; would that affect the code? My current code looks like this:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;set drop_dup;&lt;BR /&gt;length var1-var15 $20;&lt;BR /&gt;array varx $ var1-var15;&lt;BR /&gt;i=1;&lt;BR /&gt;do until (missing(vx));&lt;BR /&gt;vx= scan(duplicate2,i,'|');&lt;BR /&gt;if not missing(vx) then varx(i)= vx;&lt;BR /&gt;i+1;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;edit: it did also give me this note in the log:&lt;/P&gt;&lt;P&gt;NOTE: Invalid numeric data, 'MFR-2Q19-0056' , at line 1803 column 13.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Aug 2020 21:20:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677648#M79375</guid>
      <dc:creator>dgaribal</dc:creator>
      <dc:date>2020-08-18T21:20:53Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677652#M79376</link>
      <description>&lt;P&gt;You should post the full log. I can't guess what is in line 1803 of the log;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest to add some lines to the code for debug. Those lines should be removed at final run.&lt;/P&gt;
&lt;P&gt;Please copy the full log, in any issue, using the &amp;lt;/&amp;gt; icon window:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
 set drop_dup;
    length vx var1-var15 $20;
    array varx $ var1-var15;
    i=1;
/*DBG*/ putlog duplicate2=;
    do until (missing(vx));
         vx= scan(duplicate2,i,'|');
/*DBG*/ putlog i= vx= ;
         if not missing(vx) then varx(i)= vx;
         i+1;
      end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Aug 2020 02:08:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677652#M79376</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-08-19T02:08:14Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677655#M79377</link>
      <description>&lt;P&gt;Ok sorry about that, attached is the log from running the second piece of code you attached. Thanks again for your help!&lt;/P&gt;</description>
      <pubDate>Wed, 19 Aug 2020 13:51:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677655#M79377</guid>
      <dc:creator>dgaribal</dc:creator>
      <dc:date>2020-08-19T13:51:39Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677675#M79381</link>
      <description>&lt;P&gt;If you look at the icons menu you'll find the &amp;lt;/&amp;gt; icon. Clicking on it will open a window.&lt;/P&gt;
&lt;P&gt;Next time copy the log to this window, click ok and then is is ready to post.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;anyhow, if a new variable should be char type, like VX which holds the part of the DUPLICAT2 string&lt;/P&gt;
&lt;P&gt;then it should be defined in the length statement with $.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Change&amp;nbsp; the line - the length statement to&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;length vx var1-var15 $20;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Aug 2020 02:07:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677675#M79381</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-08-19T02:07:22Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677677#M79382</link>
      <description>&lt;P&gt;Or just simplify the code so the extra variable VX fis not needed.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set drop_dup;
  length var1-var15 $20;
  array varx var1-var15;
  do i=1 to dim(varx);
    varx[i]=scan(duplicate2,i,'|');
  end;
  drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Aug 2020 02:15:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677677#M79382</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2020-08-19T02:15:24Z</dc:date>
    </item>
    <item>
      <title>Re: Splitting a variable with pipe deliminators into multiple variables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677684#M79383</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp;, I have used VX because the "&lt;SPAN&gt;number has (can be anything from 1 duplicate to 15 duplicates)" and the first null scaned value should leave the loop.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Aug 2020 02:27:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Splitting-a-variable-with-pipe-deliminators-into-multiple/m-p/677684#M79383</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-08-19T02:27:18Z</dc:date>
    </item>
  </channel>
</rss>

