<?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: Dynamically changing Column Name based on other fields in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532644#M145968</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
infile cards truncover;
input ID	QUESTN_CD	QUESTN_TXT &amp;amp;	$15.  QUESTN_ANSWER_TXT $;
cards;
123	1	Gender	M
123	2	Age	  36
123	3	Fulltime 	Y
123	4	Hourly Pay	N
;

proc transpose data=have out=want(drop=_:);
by id;
var QUESTN_ANSWER_TXT;
id QUESTN_TXT;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 04 Feb 2019 17:38:32 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2019-02-04T17:38:32Z</dc:date>
    <item>
      <title>Dynamically changing Column Name based on other fields</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532636#M145964</link>
      <description>&lt;P&gt;I have a data set that I need to reorganize into columns and I'm worried there will be too much risk for human error if I try to hard code them all.&amp;nbsp; Data set example:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;TABLE width="273"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="51"&gt;ID&lt;/TD&gt;
&lt;TD width="65"&gt;QUESTN_CD&lt;/TD&gt;
&lt;TD width="83"&gt;QUESTN_TXT&lt;/TD&gt;
&lt;TD width="74"&gt;QUESTN_ANSWER_TXT&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Gender&lt;/TD&gt;
&lt;TD&gt;M&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Age&lt;/TD&gt;
&lt;TD&gt;36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;Fulltime&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Y&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;Hourly Pay&lt;/TD&gt;
&lt;TD&gt;N&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My desired output is something like this:&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" class="xl65" style="height: 15.0pt; width: 48pt;"&gt;ID&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;GENDER&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;AGE&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;FULLTIME&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;HOURLY PAY&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" class="xl65" style="height: 15.0pt; border-top: none;"&gt;123&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;M&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;36&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;Y&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;N&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;Code example with dummy data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC SQL;
   CREATE TABLE QUESTNS AS 
   SELECT DISTINCT t1.*,
          t2.QUESTN_ANSWR_TXT AS 'Contract Signed'n, 
          t3.QUESTN_ANSWR_TXT AS 'Assignment Start Date'n,
	  t4.QUESTN_ANSWR_TXT AS 'Correct W4'n, 
          t5.QUESTN_ANSWR_TXT AS 'Name Spelled Properly'n, 
          t6.QUESTN_ANSWR_TXT AS 'Alterations to Assignment'n,
	  t7.QUESTN_ANSWR_TXT AS 'Assignment Type'n
      FROM WORK. PERSON_INFO t1 
			left join QUESTN t2 on t1.ID = t2.REF_ID
			left join QUESTN t3 on t1.ID = t3.REF_ID
			left join QUESTN t4 on t1.ID = t4.REF_ID
			left join QUESTN t5 on t1.ID = t5.REF_ID
			left join QUESTN t6 on t1.ID = t6.REF_ID
			left join QUESTN t7 on t1.ID = t7.REF_ID
      WHERE (t2.QUESTN_CD = 9 AND t3.QUESTN_CD = 23 AND t4.QUESTN_CD = 8 AND t5.QUESTN_CD = 29 
		AND t6.QUESTN_CD = 37 AND t7.QUESTN_CD = 22);
QUIT;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;But I think there's too much room for human error in manually renaming each column based on the question code, given that there are over 40 question codes (for now) and the data source may update and change without my knowledge.&lt;BR /&gt;&lt;BR /&gt;Any and all advice appreciated!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Feb 2019 17:13:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532636#M145964</guid>
      <dc:creator>S_Nav</dc:creator>
      <dc:date>2019-02-04T17:13:27Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamically changing Column Name based on other fields</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532638#M145965</link>
      <description>&lt;P&gt;Look up PROC TRANSPOSE instead.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/10156"&gt;@S_Nav&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have a data set that I need to reorganize into columns and I'm worried there will be too much risk for human error if I try to hard code them all.&amp;nbsp; Data set example:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;TABLE width="273"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="51"&gt;ID&lt;/TD&gt;
&lt;TD width="65"&gt;QUESTN_CD&lt;/TD&gt;
&lt;TD width="83"&gt;QUESTN_TXT&lt;/TD&gt;
&lt;TD width="74"&gt;QUESTN_ANSWER_TXT&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Gender&lt;/TD&gt;
&lt;TD&gt;M&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Age&lt;/TD&gt;
&lt;TD&gt;36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;Fulltime&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Y&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;Hourly Pay&lt;/TD&gt;
&lt;TD&gt;N&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My desired output is something like this:&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" border="0" width="320" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" class="xl65" style="height: 15.0pt; width: 48pt;"&gt;ID&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;GENDER&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;AGE&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;FULLTIME&lt;/TD&gt;
&lt;TD width="64" class="xl65" style="border-left: none; width: 48pt;"&gt;HOURLY PAY&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" class="xl65" style="height: 15.0pt; border-top: none;"&gt;123&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;M&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;36&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;Y&lt;/TD&gt;
&lt;TD class="xl65" style="border-top: none; border-left: none;"&gt;N&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt;Code example with dummy data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC SQL;
   CREATE TABLE QUESTNS AS 
   SELECT DISTINCT t1.*,
          t2.QUESTN_ANSWR_TXT AS 'Contract Signed'n, 
          t3.QUESTN_ANSWR_TXT AS 'Assignment Start Date'n,
	  t4.QUESTN_ANSWR_TXT AS 'Correct W4'n, 
          t5.QUESTN_ANSWR_TXT AS 'Name Spelled Properly'n, 
          t6.QUESTN_ANSWR_TXT AS 'Alterations to Assignment'n,
	  t7.QUESTN_ANSWR_TXT AS 'Assignment Type'n
      FROM WORK. PERSON_INFO t1 
			left join QUESTN t2 on t1.ID = t2.REF_ID
			left join QUESTN t3 on t1.ID = t3.REF_ID
			left join QUESTN t4 on t1.ID = t4.REF_ID
			left join QUESTN t5 on t1.ID = t5.REF_ID
			left join QUESTN t6 on t1.ID = t6.REF_ID
			left join QUESTN t7 on t1.ID = t7.REF_ID
      WHERE (t2.QUESTN_CD = 9 AND t3.QUESTN_CD = 23 AND t4.QUESTN_CD = 8 AND t5.QUESTN_CD = 29 
		AND t6.QUESTN_CD = 37 AND t7.QUESTN_CD = 22);
QUIT;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;But I think there's too much room for human error in manually renaming each column based on the question code, given that there are over 40 question codes (for now) and the data source may update and change without my knowledge.&lt;BR /&gt;&lt;BR /&gt;Any and all advice appreciated!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Feb 2019 17:23:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532638#M145965</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-02-04T17:23:57Z</dc:date>
    </item>
    <item>
      <title>Re: Dynamically changing Column Name based on other fields</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532644#M145968</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
infile cards truncover;
input ID	QUESTN_CD	QUESTN_TXT &amp;amp;	$15.  QUESTN_ANSWER_TXT $;
cards;
123	1	Gender	M
123	2	Age	  36
123	3	Fulltime 	Y
123	4	Hourly Pay	N
;

proc transpose data=have out=want(drop=_:);
by id;
var QUESTN_ANSWER_TXT;
id QUESTN_TXT;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 04 Feb 2019 17:38:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dynamically-changing-Column-Name-based-on-other-fields/m-p/532644#M145968</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-02-04T17:38:32Z</dc:date>
    </item>
  </channel>
</rss>

