<?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: Transpose Data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612330#M178653</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/270139"&gt;@NOMBUH&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do that in a data step using an array:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	select max(total) into: max_obs from (select count(*) as total from table1 group by Name);
quit;

data table2;
	set table1;
	by Name;
	
 	array Code_(&amp;amp;max_obs) $ /* Add $ if Code is a character variable */;
 	array Amount_(&amp;amp;max_obs) $ /* Add $ if Code is a character variable */;
 	
 	if first.Name then do;
		counter=0;
		call missing(of Code_(*));
		call missing(of Amount_(*));
	end;
	
 	counter+1;
 	
 	retain Code_;
 	retain Amount_;

 	
 	do i=1 to &amp;amp;max_obs;
		Code_(counter)=Code;
		Amount_(counter)=Amount;
	end;
	
	if last.Name then output;
	drop Code Amount counter i;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can also use a proc transpose, as suggested by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=table1 out=table1_tr_code (drop=_name_) prefix=Code_;
	var Code;
	by Name;
run;

proc transpose data=table1 out=table1_tr_amount (drop=_name_) prefix=Amount_;
	var Amount;
	by Name;
run;

data table2;
	merge table1_tr_code table1_tr_amount;
	by Name;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 17 Dec 2019 08:23:42 GMT</pubDate>
    <dc:creator>ed_sas_member</dc:creator>
    <dc:date>2019-12-17T08:23:42Z</dc:date>
    <item>
      <title>Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612318#M178647</link>
      <description>&lt;P&gt;Please Assist:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;How to transpose table 1 to table 2&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Table 1&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Code&lt;/TD&gt;&lt;TD&gt;Amount&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 1&lt;/TD&gt;&lt;TD&gt;286&lt;/TD&gt;&lt;TD&gt;R 100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 1&lt;/TD&gt;&lt;TD&gt;687&lt;/TD&gt;&lt;TD&gt;R 500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 2&lt;/TD&gt;&lt;TD&gt;878&lt;/TD&gt;&lt;TD&gt;R 250&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 3&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;TD&gt;R 1 000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 3&lt;/TD&gt;&lt;TD&gt;236&lt;/TD&gt;&lt;TD&gt;R 980&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 4&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;TD&gt;R 1 244&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 4&lt;/TD&gt;&lt;TD&gt;236&lt;/TD&gt;&lt;TD&gt;R 1 470&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&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;&lt;STRONG&gt;Table 2&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Code_1&lt;/TD&gt;&lt;TD&gt;Amount_1&lt;/TD&gt;&lt;TD&gt;Code_2&lt;/TD&gt;&lt;TD&gt;Amount_2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 1&lt;/TD&gt;&lt;TD&gt;286&lt;/TD&gt;&lt;TD&gt;R 100&lt;/TD&gt;&lt;TD&gt;687&lt;/TD&gt;&lt;TD&gt;R 500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 2&lt;/TD&gt;&lt;TD&gt;878&lt;/TD&gt;&lt;TD&gt;R 250&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;R 0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 3&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;TD&gt;R 1 000&lt;/TD&gt;&lt;TD&gt;236&lt;/TD&gt;&lt;TD&gt;R 980&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Name 4&lt;/TD&gt;&lt;TD&gt;125&lt;/TD&gt;&lt;TD&gt;R 1 244&lt;/TD&gt;&lt;TD&gt;236&lt;/TD&gt;&lt;TD&gt;R 1 470&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 07:05:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612318#M178647</guid>
      <dc:creator>NOMBUH</dc:creator>
      <dc:date>2019-12-17T07:05:19Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612322#M178649</link>
      <description>&lt;P&gt;Run a transpose each for code and amount, and merge the two resulting tables.&lt;/P&gt;
&lt;P&gt;For code, please provide source data in a data step with datalines.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 07:37:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612322#M178649</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-12-17T07:37:59Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612330#M178653</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/270139"&gt;@NOMBUH&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can do that in a data step using an array:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	select max(total) into: max_obs from (select count(*) as total from table1 group by Name);
quit;

data table2;
	set table1;
	by Name;
	
 	array Code_(&amp;amp;max_obs) $ /* Add $ if Code is a character variable */;
 	array Amount_(&amp;amp;max_obs) $ /* Add $ if Code is a character variable */;
 	
 	if first.Name then do;
		counter=0;
		call missing(of Code_(*));
		call missing(of Amount_(*));
	end;
	
 	counter+1;
 	
 	retain Code_;
 	retain Amount_;

 	
 	do i=1 to &amp;amp;max_obs;
		Code_(counter)=Code;
		Amount_(counter)=Amount;
	end;
	
	if last.Name then output;
	drop Code Amount counter i;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can also use a proc transpose, as suggested by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=table1 out=table1_tr_code (drop=_name_) prefix=Code_;
	var Code;
	by Name;
run;

proc transpose data=table1 out=table1_tr_amount (drop=_name_) prefix=Amount_;
	var Amount;
	by Name;
run;

data table2;
	merge table1_tr_code table1_tr_amount;
	by Name;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 08:23:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612330#M178653</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2019-12-17T08:23:42Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612332#M178655</link>
      <description>&lt;P&gt;Data Table_1;&lt;BR /&gt;Input Name$ code$ Amount;&lt;BR /&gt;cards;&lt;BR /&gt;John 2 100&lt;BR /&gt;John 6 500&lt;BR /&gt;Lucia 8 250&lt;BR /&gt;Josh 1 1000&lt;BR /&gt;Josh 2 980&lt;BR /&gt;Tim 1 1244&lt;BR /&gt;Tim 2 1470&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 08:31:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612332#M178655</guid>
      <dc:creator>NOMBUH</dc:creator>
      <dc:date>2019-12-17T08:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612333#M178656</link>
      <description>&lt;P&gt;Thank you very much &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Dec 2019 08:36:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612333#M178656</guid>
      <dc:creator>NOMBUH</dc:creator>
      <dc:date>2019-12-17T08:36:24Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612345#M178662</link>
      <description>You're welcome!&lt;BR /&gt;Could you please mark the topic as answered?&lt;BR /&gt;Thank you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Tue, 17 Dec 2019 09:44:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612345#M178662</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2019-12-17T09:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose Data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612355#M178670</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data Table_1;
Input Name$ code$ Amount;
cards;
John 2 100
John 6 500
Lucia 8 250
Josh 1 1000
Josh 2 980
Tim 1 1244
Tim 2 1470
;

run;

proc sql noprint;
select max(n) into : n
 from ( select count(*) as n from table_1 group by name );
quit;
proc summary data=table_1 nway;
class name;
output out=want idgroup(out[&amp;amp;n] (code amount)=);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Dec 2019 11:21:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-Data/m-p/612355#M178670</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-12-17T11:21:15Z</dc:date>
    </item>
  </channel>
</rss>

