<?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: Removing middle initial on relevant records in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633045#M187769</link>
    <description>&lt;P&gt;Thank you for the speedy response. Much appreciated.&lt;/P&gt;</description>
    <pubDate>Wed, 18 Mar 2020 18:14:04 GMT</pubDate>
    <dc:creator>ddavies</dc:creator>
    <dc:date>2020-03-18T18:14:04Z</dc:date>
    <item>
      <title>Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633039#M187764</link>
      <description>&lt;P&gt;I need to eliminate the middle initial off records that have a middle initial (not all have one). Data Sample:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Smith, Tim&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Howard, Matthew L.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jones, Sarah H.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Charles, Andrew N.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Doe, John&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In excel, I can use this formula:&amp;nbsp;=IF(RIGHT(A2,1)=".",LEFT(A2,LEN(A2)-3),A2) to get my desired output:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Smith, Tim&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Howard, Matthew&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jones, Sarah&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Charles, Andrew&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Doe, John&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I replicate this in SAS? I assume it is a combination of if and substring but have not been able to quickly work it out and thought someone might have a fast solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;TIA!&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2020 17:56:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633039#M187764</guid>
      <dc:creator>ddavies</dc:creator>
      <dc:date>2020-03-18T17:56:48Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633044#M187768</link>
      <description>&lt;P&gt;data have;&lt;BR /&gt;input fullname $40.; &lt;BR /&gt;datalines;&lt;BR /&gt;Smith, Tim&lt;BR /&gt;Howard, Matthew L.&lt;BR /&gt;Jones, Sarah H.&lt;BR /&gt;Charles, Andrew N.&lt;BR /&gt;Doe, John&lt;BR /&gt;;;;;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;fullname=catx(', ',scan(fullname,1), scan(fullname,2)); &lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2020 18:10:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633044#M187768</guid>
      <dc:creator>JerryV</dc:creator>
      <dc:date>2020-03-18T18:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633045#M187769</link>
      <description>&lt;P&gt;Thank you for the speedy response. Much appreciated.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2020 18:14:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633045#M187769</guid>
      <dc:creator>ddavies</dc:creator>
      <dc:date>2020-03-18T18:14:04Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633046#M187770</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input names $20.;
cards;
Smith, Tim
Howard, Matthew L.
Jones, Sarah H.
Charles, Andrew N.
Doe, John
;

data want;
 set have;
 call scan(names, -1, _n_, _iorc_);
 if _n_ then  substr(names,_n_)=' ';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Mar 2020 18:18:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633046#M187770</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-18T18:18:46Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633229#M187836</link>
      <description>&lt;P&gt;This one ends up removing the first name if there is no middle initial so it would only work if all my names had a middle initial.&lt;/P&gt;</description>
      <pubDate>Thu, 19 Mar 2020 12:13:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633229#M187836</guid>
      <dc:creator>ddavies</dc:creator>
      <dc:date>2020-03-19T12:13:49Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633230#M187837</link>
      <description>&lt;P&gt;Unfortunately, if the last name has a hyphen, this causes the results to not be as I wanted. Any suggestions?&lt;/P&gt;</description>
      <pubDate>Thu, 19 Mar 2020 12:19:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633230#M187837</guid>
      <dc:creator>ddavies</dc:creator>
      <dc:date>2020-03-19T12:19:14Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633259#M187848</link>
      <description>&lt;P&gt;I was able to combine some different ideas and came up with this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
last=substr(fullname,length(fullname));
format last :$1.;

if last = '.' then name=substr(fullname, 1, length(fullname)-3);
else name = fullname;&lt;BR /&gt;drop last fullname;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Mar 2020 12:58:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633259#M187848</guid>
      <dc:creator>ddavies</dc:creator>
      <dc:date>2020-03-19T12:58:46Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633260#M187849</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/309196"&gt;@ddavies&lt;/a&gt;&amp;nbsp; My apologies. I shouldn't have used -1 to look behind from right. How about using 3 as the index value. I think this might nail it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
 set have;
 call scan(names, 3, _n_, _iorc_);
 if _n_ then  substr(names,_n_)=' ';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Mar 2020 13:00:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633260#M187849</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-19T13:00:23Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633284#M187862</link>
      <description>&lt;P&gt;Try adding the comma modifier (',') to the scan functions like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;fullname=catx(', ',scan(fullname,1,','), scan(fullname,2,',')); &lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Mar 2020 13:53:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633284#M187862</guid>
      <dc:creator>JerryV</dc:creator>
      <dc:date>2020-03-19T13:53:18Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633289#M187864</link>
      <description>&lt;P&gt;The problem with all of these name clean-up rules is that they still have a wide variety of names to handle, and usually simple rules don't work 100% of the time. If a person's name is listed as&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Van Arsdale, Charles&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;then none of the easily programmed rules will work.&lt;/P&gt;</description>
      <pubDate>Thu, 19 Mar 2020 14:06:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633289#M187864</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2020-03-19T14:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: Removing middle initial on relevant records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633324#M187873</link>
      <description>&lt;P&gt;Hi again&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/309196"&gt;@ddavies&lt;/a&gt;&amp;nbsp; How about regular expressions&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input names $20.;
cards;
Smith, Tim
Howard, Matthew L.
Jones, Sarah H.
Charles, Andrew N.
Doe, John
;

data want;
 set have;
 new_names=prxchange('s/(\s*\w+,)(\s+\w+)(\s*\w*.)/$1$2/', -1, names);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;names&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;new_names&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;Smith, Tim&lt;/TD&gt;
&lt;TD class="l data"&gt;Smith, Tim&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;Howard, Matthew L.&lt;/TD&gt;
&lt;TD class="l data"&gt;Howard, Matthew&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;Jones, Sarah H.&lt;/TD&gt;
&lt;TD class="l data"&gt;Jones, Sarah&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;Charles, Andrew N.&lt;/TD&gt;
&lt;TD class="l data"&gt;Charles, Andrew&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;Doe, John&lt;/TD&gt;
&lt;TD class="l data"&gt;Doe, John&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 19 Mar 2020 15:26:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-middle-initial-on-relevant-records/m-p/633324#M187873</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-19T15:26:04Z</dc:date>
    </item>
  </channel>
</rss>

