<?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: Concatenating Strings in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410877#M100413</link>
    <description>&lt;P&gt;When using CATX, the first parameter (not the second) should be the delimiter.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 06 Nov 2017 14:57:35 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2017-11-06T14:57:35Z</dc:date>
    <item>
      <title>Concatenating Strings</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410870#M100409</link>
      <description>&lt;P&gt;I am trying to take a list of text items associated with key values and concatenate them into semicolon-delimited lists.&amp;nbsp; Instead, I'm getting lists of semicolons only.&amp;nbsp; I can't figure out what is going wrong.&amp;nbsp; This is SAS 9.4 for Windows.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ODS HTML;
DATA HAVE;
     INPUT Key $ 1 Text $ 3-20;
     CARDS;
A Alpha One
A alpha two
A Alpha 3
B bee one
C See me
C See you
;;;
RUN;

PROC SORT DATA=Have;
     by Key;
run;

PROC PRINT;
     TITLE Have;
RUN;

DATA NotWhatIWant (KEEP=Key List);
     SET HAVE;
     BY Key;
     LENGTH List $50;
     RETAIN LIST;
     IF first.key THEN
          LIST = ' ';
     LIST = CATX(List,';',Text);
     IF LAST.KEY THEN
          OUTPUT NotWhatIWant;
RUN;

PROC PRINT DATA=NotWhatIWant;
     TITLE Not What I Want;
RUN;
ODS CLOSE;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="what I want.PNG" style="width: 246px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/16463iB4A8988E2168D3DA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="what I want.PNG" alt="what I want.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="not what I want.PNG" style="width: 231px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/16464iAEC320536DF14322/image-dimensions/231x288?v=v2" width="231" height="288" role="button" title="not what I want.PNG" alt="not what I want.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Nov 2017 15:23:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410870#M100409</guid>
      <dc:creator>Davanden</dc:creator>
      <dc:date>2017-11-06T15:23:54Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenating Strings</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410872#M100410</link>
      <description>Are your sure that HAVE is looking good?&lt;BR /&gt;Use put statements or the data step debugger to analyze your variables during execution.</description>
      <pubDate>Mon, 06 Nov 2017 14:53:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410872#M100410</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2017-11-06T14:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenating Strings</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410877#M100413</link>
      <description>&lt;P&gt;When using CATX, the first parameter (not the second) should be the delimiter.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Nov 2017 14:57:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410877#M100413</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-11-06T14:57:35Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenating Strings</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410893#M100414</link>
      <description>&lt;P&gt;You were nearly there, I update your code.&amp;nbsp; Do avoid coding all in uppercase or mixed case, its really hard to read.&lt;/P&gt;
&lt;PRE&gt;proc sort data=have;
  by key;
run;

data notwhatiwant (keep=key list);
  set have;
  by key;
  length list $50;
  retain list;
  list=ifc(first.key,'',catx(';',list,text));
  if last.key;
run;&lt;/PRE&gt;
&lt;P&gt;Note how I use ifc() boolean function to simplfy the if, and you do not need the output notwhatiwant.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 Nov 2017 15:27:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/410893#M100414</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-11-06T15:27:40Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenating Strings</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/497715#M132019</link>
      <description>&lt;P&gt;The &lt;STRONG&gt;&lt;A href="https://www.analyticsexam.com/sas-a00-272-certification-exam-syllabus" target="_self"&gt;old-fashioned way of concatenating strings&lt;/A&gt;&lt;/STRONG&gt; uses the operator “||”. This is still available, and still perfectly respectable. When using it, it is important to be aware of the lengths of the variables involved.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.-Concatenating-Strings.jpg" style="width: 579px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/23442iF7E31FD0E9DBA8BE/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.-Concatenating-Strings.jpg" alt="1.-Concatenating-Strings.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The log shows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2.png" style="width: 125px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/23443i876D5AC63093FB72/image-size/large?v=v2&amp;amp;px=999" role="button" title="2.png" alt="2.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Oct 2018 10:35:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenating-Strings/m-p/497715#M132019</guid>
      <dc:creator>juliet_scott</dc:creator>
      <dc:date>2018-10-29T10:35:35Z</dc:date>
    </item>
  </channel>
</rss>

