<?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 Unpivot a record to multiple records from two pivoted columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608335#M177031</link>
    <description>&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have following dataset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp; Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sportsplayed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; languagesSpoke&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Richard &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chess|golf|Sudoku &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ENG|HINDI|PUNJABI&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; judo|golf &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Arabic|ENG&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Mich &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Soccer &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; ENG&lt;/P&gt;&lt;P&gt;4 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Rach &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cards &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; ENG|HINDI&lt;/P&gt;&lt;P&gt;5 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Nic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cricket|Soccer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ENG&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Required Output has to be&lt;/P&gt;&lt;P&gt;want;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; QUALITIES&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; chess&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; golf&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Sudoku&lt;/P&gt;&lt;P&gt;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ENG&lt;/P&gt;&lt;P&gt;5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; HINDI&lt;/P&gt;&lt;P&gt;6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; PUNJABI&lt;/P&gt;&lt;P&gt;...and so on&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know how tp pivot one column...pls help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 29 Nov 2019 20:03:51 GMT</pubDate>
    <dc:creator>Suminder</dc:creator>
    <dc:date>2019-11-29T20:03:51Z</dc:date>
    <item>
      <title>Unpivot a record to multiple records from two pivoted columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608335#M177031</link>
      <description>&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have following dataset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;have;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp;&amp;nbsp; Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sportsplayed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; languagesSpoke&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Richard &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chess|golf|Sudoku &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ENG|HINDI|PUNJABI&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; SAM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; judo|golf &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Arabic|ENG&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Mich &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Soccer &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; ENG&lt;/P&gt;&lt;P&gt;4 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Rach &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cards &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; ENG|HINDI&lt;/P&gt;&lt;P&gt;5 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Nic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cricket|Soccer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ENG&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Required Output has to be&lt;/P&gt;&lt;P&gt;want;&lt;/P&gt;&lt;P&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; QUALITIES&lt;/P&gt;&lt;P&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; chess&lt;/P&gt;&lt;P&gt;2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; golf&lt;/P&gt;&lt;P&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Sudoku&lt;/P&gt;&lt;P&gt;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ENG&lt;/P&gt;&lt;P&gt;5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; HINDI&lt;/P&gt;&lt;P&gt;6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RICHARD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; PUNJABI&lt;/P&gt;&lt;P&gt;...and so on&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know how tp pivot one column...pls help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Nov 2019 20:03:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608335#M177031</guid>
      <dc:creator>Suminder</dc:creator>
      <dc:date>2019-11-29T20:03:51Z</dc:date>
    </item>
    <item>
      <title>Re: Unpivot a record to multiple records from two pivoted columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608364#M177043</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/281130"&gt;@Suminder&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can try this code, using the countw() and scan() functions to identify and split words, and then a proc transpose to output the desired dataset. NB: I believe you want to keep one ID per name. If it is not the case, you can sort your dataset by name first and then perform the proc transpose &amp;nbsp;with "by name" as a BY statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	input ID Name $ 3-9 sportsplayed $ 11-27  languagesSpoke $ 29-45 ;
	datalines;
1 Richard chess|golf|Sudoku ENG|HINDI|PUNJABI
2 SAM     judo|golf         Arabic|ENG
3 Mich    Soccer            ENG
4 Rach    Cards             ENG|HINDI
5 Nic     Cricket|Soccer    ENG
	;
run;

proc sql noprint;
	select max(countw(sportsplayed,"|")) into:max_nb_sports from have;
	select max(countw(languagesSpoke,"|")) into:max_nb_language from have;
quit;

data have2 (drop=sportsplayed languagesSpoke);
	set have;

	array sports(&amp;amp;max_nb_sports) $;
	array languages(&amp;amp;max_nb_language) $;
	
	name = upcase(name);
	
	do i=1 to &amp;amp;max_nb_sports;
		sports(i) = upcase(scan(sportsplayed,i));
	end;

	do i=1 to &amp;amp;max_nb_language;
		languages(i) = upcase(scan(languagesSpoke,i));
	end;

run;

proc transpose data=have2 out=want (drop=_name_) prefix=QUALITIES;
	var sports: languages:;
	by ID Name;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Nov 2019 21:09:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608364#M177043</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2019-11-29T21:09:24Z</dc:date>
    </item>
    <item>
      <title>Re: Unpivot a record to multiple records from two pivoted columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608367#M177046</link>
      <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;I know how tp pivot one column...pls help&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;Then why not just convert your two columns into one?&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;length both $200;
both=catx('|',sportsplayed,languagesSpoke);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;And use the method you already know.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Nov 2019 21:33:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608367#M177046</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-11-29T21:33:49Z</dc:date>
    </item>
    <item>
      <title>Re: Unpivot a record to multiple records from two pivoted columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608368#M177047</link>
      <description>&lt;P&gt;The word pivot seemed scary and I thought I should give it a pass. I only understand the terminology like transpose/restructuring.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
input ID      Name $           sportsplayed  : $30.             languagesSpoke   : $30. ;
cards;
1        Richard         chess|golf|Sudoku        ENG|HINDI|PUNJABI
2        SAM              judo|golf                       Arabic|ENG
3        Mich              Soccer                          ENG
4        Rach             Cards                            ENG|HINDI
5        Nic                 Cricket|Soccer             ENG
;
data want;
 set have;
 array t(999,999)$30 _temporary_;
 array u(*) sportsplayed languagesspoke;
 do _i=1 to dim(u);
  _k=countw(u(_i),'|');
  do _j=1 to _k;
   t(_i,_j)=scan(u(_i),_j,'|');
  end;
 end;
 do _i=1 to _k;
  do _j=1 to dim(u);
   if t(_j,_i)&amp;gt;' ' then u(_j)=t(_j,_i);
  end;
  output;
 end;
 call missing(of t(*));
 drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 29 Nov 2019 21:38:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unpivot-a-record-to-multiple-records-from-two-pivoted-columns/m-p/608368#M177047</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-11-29T21:38:09Z</dc:date>
    </item>
  </channel>
</rss>

