<?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: sum by  ID numbers and arranging and merging by ID types in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861943#M340440</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines delimiter = "	";
input ID_number	ID_type :$2.	paid_out;
datalines;
1	AA	150
1	BB	200
2	CC	100
2	CC	50
2	AA	20
3	BB	10
4	BB	50
4	AA	60
5	BB	70
6	CC	90
7	AA	80
7	CC	70
7	BB	20
8	BB	100
8	CC	10
9	AA	10
9	CC	30
9	BB	30
10	BB	20
;
run;

proc sort data = have;
	by id_number id_type;
run;

data want (keep = id_number id_type_combined total rename = (id_type_combined = id_type));
	do until (last.id_number);
		set have;
		length id_type_combined $10.;
		by id_number;
		if first.id_number then total = paid_out;
			else total + paid_out;
		if first.id_number then id_type_combined = id_type;
			else id_type_combined = catx("-", id_type_combined, id_type);
	end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;ID_number	id_type	total
1	AA-BB	350
2	AA-CC-CC	170
3	BB	10
4	AA-BB	110
5	BB	70
6	CC	90
7	AA-BB-CC	170
8	BB-CC	110
9	AA-BB-CC	70
10	BB	20&lt;/PRE&gt;</description>
    <pubDate>Thu, 02 Mar 2023 13:39:27 GMT</pubDate>
    <dc:creator>maguiremq</dc:creator>
    <dc:date>2023-03-02T13:39:27Z</dc:date>
    <item>
      <title>sum by  ID numbers and arranging and merging by ID types</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861934#M340438</link>
      <description>&lt;P&gt;Dear friends,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I&amp;nbsp;sum by ID numbers and arranging and merging by ID types?&amp;nbsp;My dataset is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID_number&lt;/TD&gt;&lt;TD&gt;ID_type&lt;/TD&gt;&lt;TD&gt;paid_out&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I like to have distinct ID_number and summing paid_out for each ID_number. The most important thing is arranging and merging the ID_type. I have three different ID_type: AA, BB and CC. I like to merge them to one cell for each ID_number. Moreover, I like to arrange them in this order: AA-BB-CC if I have all AA, BB or CC available (it's not sure). I like to have the following table:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID_number&lt;/TD&gt;&lt;TD&gt;ID_type&lt;/TD&gt;&lt;TD&gt;paied&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AA-BB&lt;/TD&gt;&lt;TD&gt;350&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AA-CC&lt;/TD&gt;&lt;TD&gt;170&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AA-BB&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;CC&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;AA-BB-CC&lt;/TD&gt;&lt;TD&gt;170&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BB-CC&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;AA-BB-CC&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 02 Mar 2023 13:13:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861934#M340438</guid>
      <dc:creator>Farshid22</dc:creator>
      <dc:date>2023-03-02T13:13:44Z</dc:date>
    </item>
    <item>
      <title>Re: sum by  ID numbers and arranging and merging by ID types</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861942#M340439</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID_number ID_type $ paid_out;
datalines;
1 AA 150 
1 BB 200 
2 CC 100 
2 CC  50 
2 AA  20 
3 BB  10 
4 BB  50 
4 AA  60 
5 BB  70 
6 CC  90 
7 AA  80 
7 CC  70 
7 BB  20 
8 BB 100 
8 CC  10 
9 AA  10 
9 CC  30 
9 BB  30 
10 BB 20 
;

data want(drop = i p);

   set have(rename = (ID_type = i paid_out = p));
   by ID_number;

   length ID_type $ 200;

   if first.ID_number then do;
      paid_out = 0;
      ID_type = '';
   end;

   ID_type = catx('-', ID_type, i);
   paid_out + p;

   if last.ID_number;

   retain ID_type;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Result:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ID_number  ID_type    paid_out
1          AA-BB 3    50
2          CC-CC-AA   170
3          BB         10
4          BB-AA      110
5          BB         70
6          CC         90
7          AA-CC-BB   170
8          BB-CC      110
9          AA-CC-BB   70
10         BB         20&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Mar 2023 13:37:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861942#M340439</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2023-03-02T13:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: sum by  ID numbers and arranging and merging by ID types</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861943#M340440</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines delimiter = "	";
input ID_number	ID_type :$2.	paid_out;
datalines;
1	AA	150
1	BB	200
2	CC	100
2	CC	50
2	AA	20
3	BB	10
4	BB	50
4	AA	60
5	BB	70
6	CC	90
7	AA	80
7	CC	70
7	BB	20
8	BB	100
8	CC	10
9	AA	10
9	CC	30
9	BB	30
10	BB	20
;
run;

proc sort data = have;
	by id_number id_type;
run;

data want (keep = id_number id_type_combined total rename = (id_type_combined = id_type));
	do until (last.id_number);
		set have;
		length id_type_combined $10.;
		by id_number;
		if first.id_number then total = paid_out;
			else total + paid_out;
		if first.id_number then id_type_combined = id_type;
			else id_type_combined = catx("-", id_type_combined, id_type);
	end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;ID_number	id_type	total
1	AA-BB	350
2	AA-CC-CC	170
3	BB	10
4	AA-BB	110
5	BB	70
6	CC	90
7	AA-BB-CC	170
8	BB-CC	110
9	AA-BB-CC	70
10	BB	20&lt;/PRE&gt;</description>
      <pubDate>Thu, 02 Mar 2023 13:39:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/861943#M340440</guid>
      <dc:creator>maguiremq</dc:creator>
      <dc:date>2023-03-02T13:39:27Z</dc:date>
    </item>
    <item>
      <title>Re: sum by  ID numbers and arranging and merging by ID types</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/862037#M340484</link>
      <description>Thank you very much my friend</description>
      <pubDate>Thu, 02 Mar 2023 21:24:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-by-ID-numbers-and-arranging-and-merging-by-ID-types/m-p/862037#M340484</guid>
      <dc:creator>Farshid22</dc:creator>
      <dc:date>2023-03-02T21:24:16Z</dc:date>
    </item>
  </channel>
</rss>

