<?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 Do LOOP reshape table in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686203#M208189</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need assistance in transforming &lt;STRONG&gt;Table 1&lt;/STRONG&gt; below into &lt;STRONG&gt;Table 2&amp;nbsp;&lt;/STRONG&gt;The last 2 characters of the column headers need to match. I have color coordinated them below. The last two characters of the program Id heading (A1 or A2) need to match the last two characters of the rate and the date columns. I am only providing a sample of my data as the dataset would be too large to attach.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Have: Table 1&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Program_ID.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Program_ID.&lt;FONT color="#3366FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_DATE.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN.&lt;FONT color="#0000FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX.&lt;FONT color="#0000FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_DATE&lt;FONT color="#0000FF"&gt;.A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;78907&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;21278&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;34456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;56785&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Want: Table 2&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Program_ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_Date&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;34456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;78907&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;21278&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;56785&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Wed, 23 Sep 2020 20:12:27 GMT</pubDate>
    <dc:creator>lgonza22</dc:creator>
    <dc:date>2020-09-23T20:12:27Z</dc:date>
    <item>
      <title>Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686203#M208189</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need assistance in transforming &lt;STRONG&gt;Table 1&lt;/STRONG&gt; below into &lt;STRONG&gt;Table 2&amp;nbsp;&lt;/STRONG&gt;The last 2 characters of the column headers need to match. I have color coordinated them below. The last two characters of the program Id heading (A1 or A2) need to match the last two characters of the rate and the date columns. I am only providing a sample of my data as the dataset would be too large to attach.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Have: Table 1&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Program_ID.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Program_ID.&lt;FONT color="#3366FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_DATE.&lt;FONT color="#FF0000"&gt;A1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN.&lt;FONT color="#0000FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX.&lt;FONT color="#0000FF"&gt;A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_DATE&lt;FONT color="#0000FF"&gt;.A2&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;78907&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;21278&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;34456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;56785&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Want: Table 2&lt;/STRONG&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Program_ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MIN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_MAX&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CCF_Date&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;34456&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;10/23/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;78907&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;21278&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;56785&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12/15/2019&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 23 Sep 2020 20:12:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686203#M208189</guid>
      <dc:creator>lgonza22</dc:creator>
      <dc:date>2020-09-23T20:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686206#M208190</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

array pgm(*) program_idA1 program_idA2; *list all here;
array _ccf_min(*) ccf_mina1-ccf_mina2; *list all here;
*Repeat for max, date;

do i=1 to dim(pgm);
    ProgramID = pgm(i);
    CCF_MIN = _ccf_min(i);
     *remainder of items;

    *explicit output to write it data set;
     output;

end;


*list variables you want to drop here;
*drop program_IDa1-programIDa2 ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's a tutorial on using Arrays in SAS&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/seminars/sas-arrays/" target="_blank" rel="noopener"&gt;https://stats.idre.ucla.edu/sas/seminars/sas-arrays/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Transposing data tutorials:&lt;BR /&gt;Wide to Long:&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-wide-to-long-using-proc-transpose/" target="_blank" rel="noopener"&gt;https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-wide-to-long-using-proc-transpose/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/reshaping-data-wide-to-long-using-a-data-step/" target="_blank" rel="noopener"&gt;https://stats.idre.ucla.edu/sas/modules/reshaping-data-wide-to-long-using-a-data-step/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Here is a reference that illustrates how to refer to variables and datasets in a short cut list. These methods can be used to list the variables in the array statement.&lt;BR /&gt;&lt;A href="https://blogs.sas.com/content/iml/2018/05/29/6-easy-ways-to-specify-a-list-of-variables-in-sas.html" target="_blank" rel="noopener"&gt;https://blogs.sas.com/content/iml/2018/05/29/6-easy-ways-to-specify-a-list-of-variables-in-sas.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2020 21:18:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686206#M208190</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-09-23T21:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686217#M208191</link>
      <description>&lt;P&gt;In addition to&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;'s excellent answer, you might be &lt;A href="https://youtu.be/KpWSxTrcMgc" target="_self"&gt;interested in this short tutorial&lt;/A&gt; about reshaping your data using DO loop and arrays.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FKpWSxTrcMgc%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DKpWSxTrcMgc&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FKpWSxTrcMgc%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="200" height="112" scrolling="no" title="SAS Tutorial | How to Restructure Your Data Using Arrays and DO Loops" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Sep 2020 21:16:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686217#M208191</guid>
      <dc:creator>ChrisHemedinger</dc:creator>
      <dc:date>2020-09-23T21:16:22Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686394#M208269</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/348836"&gt;@lgonza22&lt;/a&gt;&amp;nbsp; et al, Sorry about my late entry to the party. Anyways, I get the feeling, once your wide data, gets very very and very wide with the potential of numerous groups i.e. your last 2 characters, you perhaps would need to resort to ways using indexed binary search(Hash/Indexes) rather than indexed storage(Arrays). The reason is the declaration can become unwieldy if you would choose to declare multiple arrays. To my mind, the trick here is, it's more of&amp;nbsp; a problem that requires a search, store and retrieve approach, i.e. should the data structure be complex with combination of chars and numeric variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That being said, lazy me with only few sips of Starbucks coffee waiting for caffeine to kick in, am going to &lt;STRONG&gt;assume&lt;/STRONG&gt; that all your variables are &lt;STRONG&gt;numeric&lt;/STRONG&gt; to take a quick stab. I would request you to let us know the datatype of your variables if that assumption doesn't hold true, coz in that case the initial description of indexed binary search algorithm would be ideal. I would await for that clarification from you if you are keen with us and the thread. On the other hand, if the&amp;nbsp; assumption does hold true i.e. all are numeric, the solution is traditional, easy and boring. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp; as follows-&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;


data have;
input Program_IDA1	Program_IDA2	(CCF_MINA1	CCF_MAXA1)(:comma10.)	CCF_DATEA1 :mmddyy10.	(CCF_MINA2	CCF_MAXA2) (:comma10.)	CCF_DATEA2 :mmddyy10.;
format CCF_DATE: mmddyy10. CCF_MIN: CCF_MAX: dollar10.;
cards;
12345	78907	$1 	$2 	10/23/2017	$3 	$4 	12/15/2019
23456	21278	$1 	$2 	10/23/2017	$3 	$4 	12/15/2019
34456	56785	$1 	$2 	10/23/2017	$3 	$4 	12/15/2019
;


data temp;
 set have;
 array n _numeric_;
 do over n;
  key=substr(vname(n),lengthn(vname(n))-1);
  vn=substr(vname(n),1,lengthn(vname(n))-2);
  _n=_n_;
  value=n;
  output;
 end;
 keep key vn _n value;
run;

proc sort data=temp;
 by key _n;
run;

proc transpose data=temp out=want(drop=_: key);
 by key _n;
 var value;
 id vn;
run;
/*Format the variables for display*/
proc datasets library=work nolist;
   modify want;
   format CCF_DATE mmddyy10. CCF_MIN CCF_MAX dollar20.;
quit;

proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result-&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;Program_ID&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CCF_MIN&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CCF_MAX&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;CCF_DATE&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;12345&lt;/TD&gt;
&lt;TD class="r data"&gt;$1&lt;/TD&gt;
&lt;TD class="r data"&gt;$2&lt;/TD&gt;
&lt;TD class="r data"&gt;10/23/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;23456&lt;/TD&gt;
&lt;TD class="r data"&gt;$1&lt;/TD&gt;
&lt;TD class="r data"&gt;$2&lt;/TD&gt;
&lt;TD class="r data"&gt;10/23/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;34456&lt;/TD&gt;
&lt;TD class="r data"&gt;$1&lt;/TD&gt;
&lt;TD class="r data"&gt;$2&lt;/TD&gt;
&lt;TD class="r data"&gt;10/23/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;78907&lt;/TD&gt;
&lt;TD class="r data"&gt;$3&lt;/TD&gt;
&lt;TD class="r data"&gt;$4&lt;/TD&gt;
&lt;TD class="r data"&gt;12/15/2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;21278&lt;/TD&gt;
&lt;TD class="r data"&gt;$3&lt;/TD&gt;
&lt;TD class="r data"&gt;$4&lt;/TD&gt;
&lt;TD class="r data"&gt;12/15/2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;56785&lt;/TD&gt;
&lt;TD class="r data"&gt;$3&lt;/TD&gt;
&lt;TD class="r data"&gt;$4&lt;/TD&gt;
&lt;TD class="r data"&gt;12/15/2019&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 24 Sep 2020 16:10:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686394#M208269</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-24T16:10:38Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686396#M208270</link>
      <description>&lt;P&gt;Another option, if you don't have enough solutions already is this macro:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/A-better-way-to-FLIP-i-e-transpose-make-wide-a-dataset/ta-p/433620" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/A-better-way-to-FLIP-i-e-transpose-make-wide-a-dataset/ta-p/433620&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Sep 2020 14:55:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686396#M208270</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-09-24T14:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686462#M208316</link>
      <description>&lt;P&gt;will do thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 24 Sep 2020 18:20:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686462#M208316</guid>
      <dc:creator>lgonza22</dc:creator>
      <dc:date>2020-09-24T18:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: Do LOOP reshape table</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686463#M208317</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp; &amp;amp;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp; I really appreciate it! have a great day!&lt;/P&gt;</description>
      <pubDate>Thu, 24 Sep 2020 18:22:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Do-LOOP-reshape-table/m-p/686463#M208317</guid>
      <dc:creator>lgonza22</dc:creator>
      <dc:date>2020-09-24T18:22:34Z</dc:date>
    </item>
  </channel>
</rss>

