<?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: Efficiently Amend/Edit Character String Values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296342#M62051</link>
    <description>&lt;P&gt;Possible answer:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;catx("_%", iX;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Maybe something like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 04 Sep 2016 02:18:12 GMT</pubDate>
    <dc:creator>NKormanik</dc:creator>
    <dc:date>2016-09-04T02:18:12Z</dc:date>
    <item>
      <title>Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296341#M62050</link>
      <description>&lt;P&gt;Please see following dataset snippet:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;i_X
_20205_2
_21102a_5
_20103_5
_20902_2
_21405_3
_22805_3
_21506ab_3
_22304_5
_23003_4
_20903_4
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The following is what I want:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;i_X             iX
_20205_2        _20205
_21102a_5       _21102a
_20103_5        _20103
_20902_2        _20902
_21405_3        _21405
_22805_3        _22805
_21506ab_3      _21506ab
_22304_5        _22304
_23003_4        _23003
_20903_4        _20903
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Here is partial code for bringing this about:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
iX = i_X;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Next iX values have to be edited, or amended. &amp;nbsp;The final two characters of each value must be deleted. &amp;nbsp;Example: &amp;nbsp;_2 in the first case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Help with this greatly appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nicholas Kormanik&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 05:55:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296341#M62050</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T05:55:11Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296342#M62051</link>
      <description>&lt;P&gt;Possible answer:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;catx("_%", iX;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Maybe something like this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 02:18:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296342#M62051</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T02:18:12Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296344#M62053</link>
      <description>&lt;P&gt;Another possibility:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;iX = scan(iX,-2);
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I haven't tried the above two approaches.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thinking I'd rather wait for the experts' advice.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 02:25:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296344#M62053</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T02:25:39Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296347#M62056</link>
      <description>&lt;P&gt;Whoa! &amp;nbsp;And finally there's Ksharp's (Xia Keshan) answer to a similar question:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Perl Regular Expression is the most simple powerful flexible method for such question:

string=prxchange('s/\++$//',-1,strip(ur_string));
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Good grief. &amp;nbsp;Help Mr. Wizzard.....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 02:37:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296347#M62056</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T02:37:30Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296352#M62061</link>
      <description>&lt;P&gt;Your strings are fixed length. Use substr.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 03:46:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296352#M62061</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2016-09-04T03:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296360#M62068</link>
      <description>&lt;P&gt;Reeza, unfortunately some of the strings are longer than others. &amp;nbsp;I'll change my example to show that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If not fixed length, what's the best answer?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 05:52:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296360#M62068</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T05:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296362#M62069</link>
      <description>&lt;P&gt;1) assuming you need truncate &lt;STRONG&gt;exactly&lt;/STRONG&gt; last two caharcters:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ix = substr(i_x,1,length(ix)-2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) assuming ix is made of 2 substrings separated by underscores and&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the &lt;STRONG&gt;1st character&lt;/STRONG&gt; should be an &lt;STRONG&gt;underscore:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ix = '_' || scan(i_x,1,'_');&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 06:16:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296362#M62069</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-09-04T06:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296367#M62073</link>
      <description>&lt;P&gt;Wow. &amp;nbsp;So five or six ways of doing it, so far.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And others are likely to follow?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Sep 2016 07:36:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296367#M62073</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-04T07:36:21Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296374#M62078</link>
      <description>&lt;PRE&gt;


data have;
input i_X $20.;
string=prxchange('s/_\d+$//',-1,strip(i_x));
cards;
_20205_2
_21102a_5
_20103_5
_20902_2
_21405_3
_22805_3
_21506ab_3
_22304_5
_23003_4
_20903_4
;
run;
&lt;/PRE&gt;</description>
      <pubDate>Sun, 04 Sep 2016 07:58:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296374#M62078</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-09-04T07:58:55Z</dc:date>
    </item>
    <item>
      <title>Re: Efficiently Amend/Edit Character String Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296482#M62135</link>
      <description>&lt;P&gt;Excellent contributions. &amp;nbsp;Surely useful for future reference, and searches for answers by others.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;HOWEVER, in this present case, it appears the winner is as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
iX = scan(i_X,-2,"_");
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Easier to understand.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Sep 2016 09:26:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Efficiently-Amend-Edit-Character-String-Values/m-p/296482#M62135</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2016-09-05T09:26:04Z</dc:date>
    </item>
  </channel>
</rss>

