<?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 Divide list of names and keep data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750878#M236264</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have data that looks like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;user&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;service&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;consultant&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Jill, Jones, Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;jane@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Analysis&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Jill&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Consult&lt;/TD&gt;
&lt;TD&gt;Jones, Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want data that looks like this&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;user&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;service&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;consultant&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Jones&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Analysis&lt;/TD&gt;
&lt;TD&gt;Jones&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Analysis&lt;/TD&gt;
&lt;TD&gt;Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;There are a few parts of this, 1) I want to remove Jill 2) I want to break out when one service has multiple consultants assigned, I want to break them up so that I can analyze each consultant's workload. I have tried to break it out by using this but it's not working&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if consultant = 'Jill' then consultant = '';
   SUB = 'Jill';
   STR_LEN = length(consultants);
   SUB_LEN = length(SUB);
   POS = find(consultants,SUB,-STR_LEN);
   consultant = kupdate(STR,POS,SUB_LEN+1);                &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I appreciate any insight you all have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!!&lt;/P&gt;</description>
    <pubDate>Mon, 28 Jun 2021 19:41:41 GMT</pubDate>
    <dc:creator>KellyJade</dc:creator>
    <dc:date>2021-06-28T19:41:41Z</dc:date>
    <item>
      <title>Divide list of names and keep data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750878#M236264</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have data that looks like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;user&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;service&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;consultant&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Jill, Jones, Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%"&gt;jane@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Analysis&lt;/TD&gt;
&lt;TD width="33.333333333333336%"&gt;Jill&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Consult&lt;/TD&gt;
&lt;TD&gt;Jones, Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want data that looks like this&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;user&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;service&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;consultant&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Jones&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;jack@gmail.com&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Meeting&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="30px"&gt;Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Analysis&lt;/TD&gt;
&lt;TD&gt;Jones&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ana@gmail.com&lt;/TD&gt;
&lt;TD&gt;Analysis&lt;/TD&gt;
&lt;TD&gt;Jack&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;There are a few parts of this, 1) I want to remove Jill 2) I want to break out when one service has multiple consultants assigned, I want to break them up so that I can analyze each consultant's workload. I have tried to break it out by using this but it's not working&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if consultant = 'Jill' then consultant = '';
   SUB = 'Jill';
   STR_LEN = length(consultants);
   SUB_LEN = length(SUB);
   POS = find(consultants,SUB,-STR_LEN);
   consultant = kupdate(STR,POS,SUB_LEN+1);                &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I appreciate any insight you all have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!!&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jun 2021 19:41:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750878#M236264</guid>
      <dc:creator>KellyJade</dc:creator>
      <dc:date>2021-06-28T19:41:41Z</dc:date>
    </item>
    <item>
      <title>Re: Divide list of names and keep data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750889#M236269</link>
      <description>&lt;P&gt;Is the variable actually named CONSULTANT or is it CONSULTANTS?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At any rate, here is an approach you can use.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   set have;
   length name $ 20;
   do i=1 by 1 until (name = ' ');
      name = scan(consultant, i, ',');
      if name not in (' ', 'Jill') then output;
   end;
   drop consultant i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 28 Jun 2021 21:10:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750889#M236269</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2021-06-28T21:10:50Z</dc:date>
    </item>
    <item>
      <title>Re: Divide list of names and keep data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750895#M236272</link>
      <description>&lt;P&gt;I think you want to find all instances of a single consultant, and remove that consultants names from all other multi-name consultants.&amp;nbsp; &amp;nbsp;And you also want to output one record for each surviving name in a multi-name consultants value:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want (drop=_:);
  set have;
  if _n_=1 then do;&lt;BR /&gt;    declare hash singles(dataset:"have(where=(countw(consultants,',')=1))");
      singles.definekey('consultants');
      singles.definedata(all:'Y');
      singles.definedone();
  end;&lt;BR /&gt;
  do _c=1 to countw(consultants);
    consultant=scan(consultants,_c); 
    if singles.check(key:consultant)^=0 then output;     
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note I changed the initial variable name from &lt;EM&gt;&lt;STRONG&gt;consultant&lt;/STRONG&gt;&lt;/EM&gt; to &lt;EM&gt;&lt;STRONG&gt;consultants&lt;/STRONG&gt;&lt;/EM&gt;, and made a new variable in the WANT dataset (&lt;EM&gt;&lt;STRONG&gt;consultant&lt;/STRONG&gt;&lt;/EM&gt;).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This loads all the single-name instances of &lt;EM&gt;&lt;STRONG&gt;consultants&lt;/STRONG&gt;&lt;/EM&gt; into the memory-resident hash object &lt;EM&gt;&lt;STRONG&gt;singles&lt;/STRONG&gt;&lt;/EM&gt;.&amp;nbsp; It then loops though each &lt;EM&gt;&lt;STRONG&gt;consultant&lt;/STRONG&gt;&lt;/EM&gt; in &lt;EM&gt;&lt;STRONG&gt;consultants&lt;/STRONG&gt;&lt;/EM&gt;.&amp;nbsp; If that &lt;EM&gt;&lt;STRONG&gt;consultant&lt;/STRONG&gt;&lt;/EM&gt; is not in &lt;EM&gt;&lt;STRONG&gt;singles&lt;/STRONG&gt;&lt;/EM&gt; then output.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jun 2021 00:55:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Divide-list-of-names-and-keep-data/m-p/750895#M236272</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2021-06-29T00:55:08Z</dc:date>
    </item>
  </channel>
</rss>

