<?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: Concatenate multiple rows into a single value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132886#M27037</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;data inTable;
input letter $ number $;
datalines;
a 1
a 2
a 3
b 4
b 5
b 6
c 7
d 8
e 9
e 10
f 11
;
run;
data want(drop=number);
 set inTable ;
 by letter;
 length l $ 4000;
 retain l;
 l=catx(',',l,number);
 if last.letter then do; output;call missing(l);end;
run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Jun 2012 02:56:50 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2012-06-06T02:56:50Z</dc:date>
    <item>
      <title>Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132882#M27033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm having a problem with concatenating a series of rows into a single row based on a group within a SAS dataset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically a simplified version of what I want is to be able to is start with something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data inTable;&lt;/P&gt;&lt;P&gt;input letter $ number $;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;a 1&lt;/P&gt;&lt;P&gt;a 2&lt;/P&gt;&lt;P&gt;a 3&lt;/P&gt;&lt;P&gt;b 4&lt;/P&gt;&lt;P&gt;b 5&lt;/P&gt;&lt;P&gt;b 6&lt;/P&gt;&lt;P&gt;c 7&lt;/P&gt;&lt;P&gt;d 8&lt;/P&gt;&lt;P&gt;e 9&lt;/P&gt;&lt;P&gt;e 10&lt;/P&gt;&lt;P&gt;f 11&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and end up with something like this:&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="176" style="border: 1px solid rgb(0, 0, 0); width: 286px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Letter&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Numbers&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;a&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1,2,3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;b&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;4,5,6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;c&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;d&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;7,8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;e&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;9, 10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;f&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The delimeter doesn't matter as long as I can see all the numbers that pertain to a group.&amp;nbsp; In this case I don't know how many 'numbers' would be applied to each letter (assume max 5) and I'd have 100K+ 'letters'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for your help!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 00:02:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132882#M27033</guid>
      <dc:creator>ryan_rodrig</dc:creator>
      <dc:date>2012-06-06T00:02:14Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132883#M27034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data inTable;&lt;/P&gt;&lt;P&gt;input letter $ number $;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;a 1&lt;/P&gt;&lt;P&gt;a 2&lt;/P&gt;&lt;P&gt;a 3&lt;/P&gt;&lt;P&gt;b 4&lt;/P&gt;&lt;P&gt;b 5&lt;/P&gt;&lt;P&gt;b 6&lt;/P&gt;&lt;P&gt;c 7&lt;/P&gt;&lt;P&gt;d 8&lt;/P&gt;&lt;P&gt;e 9&lt;/P&gt;&lt;P&gt;e 10&lt;/P&gt;&lt;P&gt;f 11&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;length cat $20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.letter);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set intable;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by letter notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cat=catx(',',cat,number);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; drop number;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 00:24:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132883#M27034</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-06-06T00:24:00Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132884#M27035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;or by hash:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data inTable;&lt;/P&gt;&lt;P&gt;input letter $ number $;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;a 1&lt;/P&gt;&lt;P&gt;a 2&lt;/P&gt;&lt;P&gt;a 3&lt;/P&gt;&lt;P&gt;b 4&lt;/P&gt;&lt;P&gt;b 5&lt;/P&gt;&lt;P&gt;b 6&lt;/P&gt;&lt;P&gt;c 7&lt;/P&gt;&lt;P&gt;d 8&lt;/P&gt;&lt;P&gt;e 9&lt;/P&gt;&lt;P&gt;e 10&lt;/P&gt;&lt;P&gt;f 11&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;length letter $8 cat $20;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h(ordered:'a');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definekey('letter');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definedata('letter','cat');&lt;/P&gt;&lt;P&gt;&amp;nbsp; h.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set intable end=last;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if h.find() ne 0 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cat=number;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; h.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cat=catx(',',cat,number);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; h.replace();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last then h.output(dataset:'want');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc print data=want;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; letter&amp;nbsp;&amp;nbsp;&amp;nbsp; cat&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,2,3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,5,6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9,10&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Linlin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 01:36:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132884#M27035</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-06-06T01:36:34Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132885#M27036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; length cat $200 ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain cat ;&lt;/P&gt;&lt;P&gt;set intable ; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by letter notsorted ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.letter then cat = cats(number) ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else cat = catx(',',cat,number) ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if last.letter then output ;&lt;/P&gt;&lt;P&gt;run ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 01:41:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132885#M27036</guid>
      <dc:creator>SteveNZ</dc:creator>
      <dc:date>2012-06-06T01:41:18Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132886#M27037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;data inTable;
input letter $ number $;
datalines;
a 1
a 2
a 3
b 4
b 5
b 6
c 7
d 8
e 9
e 10
f 11
;
run;
data want(drop=number);
 set inTable ;
 by letter;
 length l $ 4000;
 retain l;
 l=catx(',',l,number);
 if last.letter then do; output;call missing(l);end;
run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 02:56:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132886#M27037</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-06-06T02:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132887#M27038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or, use the SAS tools which match the needs, in this case PROC TRANSPOSE and the CATX function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;transpose&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;data&lt;/SPAN&gt;=intable &lt;SPAN style="color: #0000ff;"&gt;out&lt;/SPAN&gt;=tempwide ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;by&lt;/SPAN&gt; letter ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;var&lt;/SPAN&gt; number ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;SPAN style="color: #000000;"&gt; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/SPAN&gt; want(keep = letter cat) ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;set&lt;/SPAN&gt; tempwide ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #0000ff;"&gt;length&lt;/SPAN&gt; cat $&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;20&lt;/STRONG&gt;&lt;/SPAN&gt; ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px;"&gt;cat = catx( &lt;SPAN style="color: #800080;"&gt;','&lt;/SPAN&gt; , of col: ) ;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; color: #000080;"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;SPAN style="color: #000000;"&gt; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2012 16:13:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/132887#M27038</guid>
      <dc:creator>Howles</dc:creator>
      <dc:date>2012-06-07T16:13:52Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/227447#M40982</link>
      <description>SO GREAT! VERY PRECISE AND EASY TO RUN! THANKS!</description>
      <pubDate>Mon, 28 Sep 2015 03:28:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/227447#M40982</guid>
      <dc:creator>jobermon</dc:creator>
      <dc:date>2015-09-28T03:28:59Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/227449#M40983</link>
      <description>Excellent! Your way of doing it helped me a lot! I was wondering what I would do to see step-by-step before getting straight to the final output! I just erased the "if last.letter then output" and it worked! Thanks! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Mon, 28 Sep 2015 03:56:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/227449#M40983</guid>
      <dc:creator>jobermon</dc:creator>
      <dc:date>2015-09-28T03:56:47Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/288862#M59620</link>
      <description>&lt;P&gt;Here is another example from SP Choudary.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data inds;&lt;BR /&gt;input grp $ invar $;&lt;BR /&gt;cards;&lt;BR /&gt;a 1&lt;BR /&gt;a 2&lt;BR /&gt;a 3&lt;BR /&gt;b 4&lt;BR /&gt;b 5&lt;BR /&gt;b 6&lt;BR /&gt;c 7&lt;BR /&gt;d .&lt;BR /&gt;e 8&lt;BR /&gt;e 9&lt;BR /&gt;f 10&lt;BR /&gt;g .&lt;BR /&gt;g .&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;data outds (drop = invar);&lt;BR /&gt;set inds;&lt;BR /&gt;by grp;&lt;BR /&gt;length outvar $200;&lt;BR /&gt;retain outvar;&lt;BR /&gt;if first.grp then call missing(outvar);&lt;BR /&gt;outvar = catx(', ', outvar, invar);&lt;BR /&gt;if last.grp;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Aug 2016 08:02:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/288862#M59620</guid>
      <dc:creator>SPChoudary</dc:creator>
      <dc:date>2016-08-02T08:02:26Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/331598#M74548</link>
      <description>&lt;P&gt;Love this solution and have found it extremely usefully. Is there a way to exand this so that the "numbers" columns is grouped using two columns?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried&amp;nbsp;this but it didn't work&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;length cat $20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do until (last.letter1 and last.letter2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set intable;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by letter2 letter1 notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cat=catx(',',cat,number);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; drop number;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Feb 2017 17:11:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/331598#M74548</guid>
      <dc:creator>blinkwy</dc:creator>
      <dc:date>2017-02-10T17:11:28Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/332782#M74942</link>
      <description>&lt;P&gt;For the do until line of&amp;nbsp;code try the following&amp;nbsp;instead. This will loop through different letter1 within each letter2.&lt;/P&gt;&lt;PRE&gt;do until (last.letter1);&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2017 20:36:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/332782#M74942</guid>
      <dc:creator>paganini59</dc:creator>
      <dc:date>2017-02-14T20:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343044#M78700</link>
      <description>&lt;P&gt;Good afternoon!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I thought this was really cool solution--thank you for posting it. I was curious about doing something similar, but rather than populating the transposed cell with the series of values (i.e., 1,2,3, etc.), I would want to populate the cell with the sum of values (i.e., 6). Could I modify this proc transpose syntax to accomplish this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I appreciate your learned insight.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;P&lt;/P&gt;</description>
      <pubDate>Tue, 21 Mar 2017 19:34:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343044#M78700</guid>
      <dc:creator>PhilG</dc:creator>
      <dc:date>2017-03-21T19:34:52Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343258#M78798</link>
      <description>&lt;P&gt;Dear Phil,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am really sorry&amp;nbsp;I did not get your question, could you please share your question with examples?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;SP.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Mar 2017 13:00:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343258#M78798</guid>
      <dc:creator>SPChoudary</dc:creator>
      <dc:date>2017-03-22T13:00:50Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343438#M78845</link>
      <description>&lt;P&gt;Sure thing. Basically, I want to be able to turn this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;ID&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;U&gt;LOS&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;
&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/P&gt;
&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&lt;/P&gt;
&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;
&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;into something like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;ID&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;U&gt;Total LOS&amp;nbsp;&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60&lt;/P&gt;
&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60&lt;/P&gt;
&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or, even something like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;ID&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;U&gt;Mean LOS&amp;nbsp;&lt;/U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/P&gt;
&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 26.67&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does that make sense? I appreciate the follow up question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;P&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Mar 2017 17:55:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343438#M78845</guid>
      <dc:creator>PhilG</dc:creator>
      <dc:date>2017-03-22T17:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: Concatenate multiple rows into a single value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343633#M78911</link>
      <description>&lt;P&gt;Dear&amp;nbsp;Phil,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the solution for your question, Hope it will helps you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data inds;&lt;BR /&gt;input id $ los;&lt;BR /&gt;cards;&lt;BR /&gt;a 10&lt;/P&gt;&lt;P&gt;a 20&lt;/P&gt;&lt;P&gt;a 30&lt;/P&gt;&lt;P&gt;b 20&lt;/P&gt;&lt;P&gt;b 20&lt;/P&gt;&lt;P&gt;b 20&lt;/P&gt;&lt;P&gt;c 20&lt;/P&gt;&lt;P&gt;c 10&lt;/P&gt;&lt;P&gt;c 50&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc sort data = inds;&lt;BR /&gt;by id;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;/* Sum by Group */&lt;BR /&gt;data outds1 (keep = id sumvar);&lt;BR /&gt;set inds;&lt;BR /&gt;by id;&lt;/P&gt;&lt;P&gt;if first.id then sumvar = 0;&lt;/P&gt;&lt;P&gt;sumvar + los;&lt;/P&gt;&lt;P&gt;if last.id;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;/* Mean by Group */&lt;BR /&gt;data outds2 (keep = id meanvar);&lt;BR /&gt;set inds;&lt;BR /&gt;by id;&lt;/P&gt;&lt;P&gt;if first.id then do;&lt;BR /&gt;sumvar = 0;&lt;BR /&gt;grpcnt = 0;&lt;BR /&gt;end;&lt;/P&gt;&lt;P&gt;sumvar + los;&lt;BR /&gt;grpcnt + 1;&lt;/P&gt;&lt;P&gt;meanvar = round(sumvar/grpcnt, .01);&lt;/P&gt;&lt;P&gt;if last.id;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;SP Choudary.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Mar 2017 09:52:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Concatenate-multiple-rows-into-a-single-value/m-p/343633#M78911</guid>
      <dc:creator>SPChoudary</dc:creator>
      <dc:date>2017-03-23T09:52:25Z</dc:date>
    </item>
  </channel>
</rss>

