<?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: DATA step transpose question in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97027#M20444</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You mentioned that you have over 600 different datasets with different variable names. if they share 'key' and 'report_date', or if they don't share any variables consistently, but the first two variables will remain not transposed, then there maybe a dynamic solution available involving metadata and macro variable. Otherwise, it probably needs a lot hard coding.&lt;/P&gt;&lt;P&gt;The following code uses array() to hopefully get you started, and after this step, there are many ways to stack them together, 'datastep set', 'proc append', 'proc datasets', to name a few.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input key report_date :mmddyy10. state$&amp;nbsp;&amp;nbsp;&amp;nbsp; animal$&amp;nbsp;&amp;nbsp;&amp;nbsp; cost homes&amp;nbsp;&amp;nbsp;&amp;nbsp; rcosttohome&amp;nbsp;&amp;nbsp;&amp;nbsp; startdate:mmddyy8.;&lt;/P&gt;&lt;P&gt;format report_date startdate :mmddyy10.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1234&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; CA&amp;nbsp;&amp;nbsp;&amp;nbsp; cats&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; .50&amp;nbsp;&amp;nbsp;&amp;nbsp; 02/03/04&lt;/P&gt;&lt;P&gt;2356&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; NC&amp;nbsp;&amp;nbsp;&amp;nbsp; dogs&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; 34&amp;nbsp;&amp;nbsp;&amp;nbsp; .75&amp;nbsp;&amp;nbsp;&amp;nbsp; 03/04/06&lt;/P&gt;&lt;P&gt;1288&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; TX&amp;nbsp;&amp;nbsp;&amp;nbsp; cows&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 86&amp;nbsp;&amp;nbsp;&amp;nbsp; .83&amp;nbsp;&amp;nbsp;&amp;nbsp; 07/08/09&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 want (keep=key report_date var_name all:);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;format all_date mmddyy10.;&lt;/P&gt;&lt;P&gt;array c _character_; length var_name $20.;&lt;/P&gt;&lt;P&gt;array n cost--startdate;&lt;/P&gt;&lt;P&gt;do over c;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var_name=vname(c);&lt;/P&gt;&lt;P&gt;&amp;nbsp; all_character=c;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_character);&lt;/P&gt;&lt;P&gt;end;&amp;nbsp; &lt;/P&gt;&lt;P&gt;do over n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name=vname(n);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; dt=substr(var_name,length(var_name)-3,4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if dt='date' then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_date=n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else if n&amp;gt;=1 then do;&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; all_number=n;&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; output;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_number);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;&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; all_ratio=n;&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; output;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_ratio);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;end;&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>Mon, 02 Jul 2012 18:20:22 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2012-07-02T18:20:22Z</dc:date>
    <item>
      <title>DATA step transpose question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97026#M20443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've been tasked with doing a complicated transpose of a dataset that I have never done before and keep getting hung up.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to do this transpose for over 600 different datasets and then stack them on top of one another for later use.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each dataset has about 15 unique variables but it varies across data sets.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Currently the data looks like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#000000&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;}" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;key&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;report date&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;state&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;animal&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;cost&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;homes&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;rcosttohome&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;startdate&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;CA&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;cats&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;20&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;30&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.50&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;02/03/04&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;2356&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;P&gt;01/01/01&lt;/P&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;NC&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;dogs&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;30&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;34&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.75&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;03/04/06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1288&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;TX&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;cows&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;40&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;86&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.83&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;07/08/09&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to to look like this&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;key&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;report_date&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;VAR_NAME&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;ALL_CHARACTER&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;ALL_Number&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;ALL_RATIO&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;ALL_DATE&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;P&gt;01/01/01&lt;/P&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;state&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;CA&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;animal&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;cats&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;cost&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;20&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;homes&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;30&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;rcosttohome&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;.5&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;1234&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;01/01/01&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;startdate&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;02/03/04&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and it repeats for each key.&amp;nbsp; The data table will eventually be very very long.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I already have created a macro variable &amp;amp;varlist. that identifies all the variables that need to become rows in the transpose.&amp;nbsp; But I am having a hard time consolidating like values into their respective columns.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for any help you can offer!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2012 15:49:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97026#M20443</guid>
      <dc:creator>mbutton</dc:creator>
      <dc:date>2012-07-02T15:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: DATA step transpose question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97027#M20444</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You mentioned that you have over 600 different datasets with different variable names. if they share 'key' and 'report_date', or if they don't share any variables consistently, but the first two variables will remain not transposed, then there maybe a dynamic solution available involving metadata and macro variable. Otherwise, it probably needs a lot hard coding.&lt;/P&gt;&lt;P&gt;The following code uses array() to hopefully get you started, and after this step, there are many ways to stack them together, 'datastep set', 'proc append', 'proc datasets', to name a few.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;input key report_date :mmddyy10. state$&amp;nbsp;&amp;nbsp;&amp;nbsp; animal$&amp;nbsp;&amp;nbsp;&amp;nbsp; cost homes&amp;nbsp;&amp;nbsp;&amp;nbsp; rcosttohome&amp;nbsp;&amp;nbsp;&amp;nbsp; startdate:mmddyy8.;&lt;/P&gt;&lt;P&gt;format report_date startdate :mmddyy10.;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1234&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; CA&amp;nbsp;&amp;nbsp;&amp;nbsp; cats&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; .50&amp;nbsp;&amp;nbsp;&amp;nbsp; 02/03/04&lt;/P&gt;&lt;P&gt;2356&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; NC&amp;nbsp;&amp;nbsp;&amp;nbsp; dogs&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; 34&amp;nbsp;&amp;nbsp;&amp;nbsp; .75&amp;nbsp;&amp;nbsp;&amp;nbsp; 03/04/06&lt;/P&gt;&lt;P&gt;1288&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; TX&amp;nbsp;&amp;nbsp;&amp;nbsp; cows&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 86&amp;nbsp;&amp;nbsp;&amp;nbsp; .83&amp;nbsp;&amp;nbsp;&amp;nbsp; 07/08/09&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 want (keep=key report_date var_name all:);&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;format all_date mmddyy10.;&lt;/P&gt;&lt;P&gt;array c _character_; length var_name $20.;&lt;/P&gt;&lt;P&gt;array n cost--startdate;&lt;/P&gt;&lt;P&gt;do over c;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var_name=vname(c);&lt;/P&gt;&lt;P&gt;&amp;nbsp; all_character=c;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_character);&lt;/P&gt;&lt;P&gt;end;&amp;nbsp; &lt;/P&gt;&lt;P&gt;do over n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name=vname(n);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; dt=substr(var_name,length(var_name)-3,4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if dt='date' then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_date=n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else if n&amp;gt;=1 then do;&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; all_number=n;&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; output;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_number);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;&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; all_ratio=n;&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; output;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(all_ratio);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;end;&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>Mon, 02 Jul 2012 18:20:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97027#M20444</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-07-02T18:20:22Z</dc:date>
    </item>
    <item>
      <title>Re: DATA step transpose question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97028#M20445</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you!&amp;nbsp; This helped me get pointed in the right direction. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;They all share a common key variable and report date.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2012 18:30:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97028#M20445</guid>
      <dc:creator>mbutton</dc:creator>
      <dc:date>2012-07-02T18:30:51Z</dc:date>
    </item>
    <item>
      <title>Re: DATA step transpose question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97029#M20446</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's the hard-coded example, for the data you provided.&amp;nbsp; You'll have to make sure that the lengths for the character variables are long enough.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (keep=key report_date var_name all_character all_number all_ratio all_date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; length var_name all_character $ 32;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='state';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_character=state;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='animal';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_character=animal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_character=' ';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='cost';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_number=cost;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='homes';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_number=homes;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_number=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='rcosttohome';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_ratio = rcosttohome;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_ratio=.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var_name='startdate';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; all_date = startdate;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Variables need to be set to missing (such as all_number) when the next variable to be processed falls into a different column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2012 18:31:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97029#M20446</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-07-02T18:31:27Z</dc:date>
    </item>
    <item>
      <title>Re: DATA step transpose question</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97030#M20447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hohooo. That is really not easy, especially you need so many datasets to process.&lt;/P&gt;&lt;P&gt;HaiKuo has pointed you a right direction .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data have;
input key report_date :mmddyy10. state$&amp;nbsp;&amp;nbsp;&amp;nbsp; animal$&amp;nbsp;&amp;nbsp;&amp;nbsp; cost homes&amp;nbsp;&amp;nbsp;&amp;nbsp; rcosttohome&amp;nbsp;&amp;nbsp;&amp;nbsp; startdate:mmddyy8.;
format report_date startdate :mmddyy10.;
cards;
1234&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; CA&amp;nbsp;&amp;nbsp;&amp;nbsp; cats&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; .50&amp;nbsp;&amp;nbsp;&amp;nbsp; 02/03/04
2356&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; NC&amp;nbsp;&amp;nbsp;&amp;nbsp; dogs&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp; 34&amp;nbsp;&amp;nbsp;&amp;nbsp; .75&amp;nbsp;&amp;nbsp;&amp;nbsp; 03/04/06
1288&amp;nbsp;&amp;nbsp;&amp;nbsp; 01/01/01&amp;nbsp;&amp;nbsp;&amp;nbsp; TX&amp;nbsp;&amp;nbsp;&amp;nbsp; cows&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 86&amp;nbsp;&amp;nbsp;&amp;nbsp; .83&amp;nbsp;&amp;nbsp;&amp;nbsp; 07/08/09
;
run;
data want(keep=key report_date var_name all_character all_ratio all_date all_number where=(var_name not in ('key' 'report_date') ));
 set have;
 array _a{*} $ _character_;
 array _b{*}&amp;nbsp; _numeric_;
 length var_name all_character $ 400;
 do i=1 to dim(_a);
&amp;nbsp; var_name=vname(_a{i});
&amp;nbsp; all_character=_a{i};
&amp;nbsp; output; all_character=' ';
 end;
 do i=1 to dim(_b);
&amp;nbsp; var_name=vname(_b{i});
&amp;nbsp; if _b{i} gt 0 and&amp;nbsp; _b{i} lt 1 then do;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_ratio=_b{i};
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;all_ratio=.;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if vformat(_b{i}) in: ('MMDDYY' 'YYMMDD' 'DDMMYY' 'DATE') then do;
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_date=_b{i};
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;all_date=.;
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_number=_b{i};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output; all_number=.;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;
 end;
 format all_date yymmdd10.;
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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2012 05:51:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DATA-step-transpose-question/m-p/97030#M20447</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-07-03T05:51:39Z</dc:date>
    </item>
  </channel>
</rss>

