<?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 an array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794954#M254948</link>
    <description>&lt;P&gt;Preparing the data and using TRANSPOSE:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data long;
set have;
vname = substr(scan(script,2,"_"),2,2);
run;

proc sort data=long;
by id;
run;

proc transpose data=long out=want;
by id;
var date;
id vname;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In your data, flag seems to always be constant for a given id, is this also true for your real data?&lt;/P&gt;</description>
    <pubDate>Tue, 08 Feb 2022 09:17:34 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2022-02-08T09:17:34Z</dc:date>
    <item>
      <title>Transpose an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794942#M254940</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I want to transpose a data array.&lt;/P&gt;&lt;P&gt;When the "Script" column contains M2 then I want the "Want" table to report the date in the M2 column.&lt;/P&gt;&lt;P&gt;Another example for the id "789319", "Script" contains M6 I want to report the date in the column "M6"&lt;BR /&gt;When there is no data I want it to remain empty&lt;/P&gt;&lt;P&gt;Thanks a lot for your help.&lt;/P&gt;&lt;P&gt;William&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Want&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Script&lt;/TD&gt;&lt;TD&gt;DATE&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;M2&lt;/TD&gt;&lt;TD&gt;M3&lt;/TD&gt;&lt;TD&gt;M4&lt;/TD&gt;&lt;TD&gt;M6&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;235638&lt;/TD&gt;&lt;TD&gt;Dts_IM2_ras&lt;/TD&gt;&lt;TD&gt;23/01/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;235638&lt;/TD&gt;&lt;TD&gt;23/01/2021&lt;/TD&gt;&lt;TD&gt;24/02/2021&lt;/TD&gt;&lt;TD&gt;26/03/2021&lt;/TD&gt;&lt;TD&gt;27/05/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;235638&lt;/TD&gt;&lt;TD&gt;Promo_IM3_be&lt;/TD&gt;&lt;TD&gt;24/02/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;457814&lt;/TD&gt;&lt;TD&gt;25/01/2021&lt;/TD&gt;&lt;TD&gt;28/02/2021&lt;/TD&gt;&lt;TD&gt;29/03/2021&lt;/TD&gt;&lt;TD&gt;30/06/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;457814&lt;/TD&gt;&lt;TD&gt;SZE_IM2_rz&lt;/TD&gt;&lt;TD&gt;25/01/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;=&amp;gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;897643&lt;/TD&gt;&lt;TD&gt;31/07/2021&lt;/TD&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;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;235638&lt;/TD&gt;&lt;TD&gt;Queffrti_IM4_rgg&lt;/TD&gt;&lt;TD&gt;26/03/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;894512&lt;/TD&gt;&lt;TD&gt;01/09/2021&lt;/TD&gt;&lt;TD&gt;15/10/2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;235638&lt;/TD&gt;&lt;TD&gt;AIU_IM6_ski&lt;/TD&gt;&lt;TD&gt;27/05/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;789319&lt;/TD&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;TD&gt;15/12/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;457814&lt;/TD&gt;&lt;TD&gt;alop_IM3_rfz&lt;/TD&gt;&lt;TD&gt;28/02/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;457814&lt;/TD&gt;&lt;TD&gt;fop_IM4_rhtrh&lt;/TD&gt;&lt;TD&gt;29/03/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;457814&lt;/TD&gt;&lt;TD&gt;skop_IM6_rrefgr&lt;/TD&gt;&lt;TD&gt;30/06/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;897643&lt;/TD&gt;&lt;TD&gt;dzd_IM2_rsa&lt;/TD&gt;&lt;TD&gt;31/07/2021&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;894512&lt;/TD&gt;&lt;TD&gt;uil_IM2_rdzd&lt;/TD&gt;&lt;TD&gt;01/09/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;894512&lt;/TD&gt;&lt;TD&gt;kujndbe_IM3_ezef&lt;/TD&gt;&lt;TD&gt;15/10/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;789319&lt;/TD&gt;&lt;TD&gt;kujnzze_IM6_ezff&lt;/TD&gt;&lt;TD&gt;15/12/2021&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 08 Feb 2022 08:18:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794942#M254940</guid>
      <dc:creator>WilliamB</dc:creator>
      <dc:date>2022-02-08T08:18:38Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794950#M254946</link>
      <description>&lt;P&gt;I would start by&amp;nbsp; extracting the variable name from "script". Depending on the contents of "script" this could work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;varname = substr(scan(Script, 3, '_'), 2);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Next steps:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;create a sorted list (in a macro-variable) of all m-variables to be created&lt;/LI&gt;
&lt;LI&gt;sort data by id&lt;/LI&gt;
&lt;LI&gt;maybe: use a data step, retain the m-variables, use first/last to fill the variables, this is tricky due to the non existence of m1 and m5 in your data, the appropriate position in the array could be returned by i = findw("&amp;amp;varlist", varname, ' ', 'set');&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Post data in usable from, if you want working code.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Feb 2022 09:03:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794950#M254946</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2022-02-08T09:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794951#M254947</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;you could do something like that:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA have;
infile datalines TRUNCOVER;
input ID :8. Script :$25. DATE :ddmmyy10. Flag :8.;
format date ddmmyy10.;
datalines4;
235638	Dts_IM2_ras	   23/01/2021 0
235638	Promo_IM3_be	24/02/2021	0
457814	SZE_IM2_rz	   25/01/2021	1
235638	Queffrti_IM4_rgg	26/03/2021	0
235638	AIU_IM6_ski	   27/05/2021	0
457814	alop_IM3_rfz	28/02/2021	1
457814	fop_IM4_rhtrh	29/03/2021	1
457814	skop_IM6_rrefgr 30/06/2021	1
897643	dzd_IM2_rsa	31/07/2021	0
894512	uil_IM2_rdzd	01/09/2021	1
894512	kujndbe_IM3_ezef	15/10/2021	1
789319	kujnzze_IM6_ezff	15/12/2021	1
;;;;
run;

data have;
   set have;
   length help $10;
   array ms M1-M10;
   do over ms;
      if index(script,vname(ms)) then help=vname(ms);
   end;
run;

proc sort data=have;by id flag;run;
proc transpose data=have out=want(drop=_name_);
   by id flag;
   var date;
   id help;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Feb 2022 09:05:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794951#M254947</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2022-02-08T09:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794954#M254948</link>
      <description>&lt;P&gt;Preparing the data and using TRANSPOSE:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data long;
set have;
vname = substr(scan(script,2,"_"),2,2);
run;

proc sort data=long;
by id;
run;

proc transpose data=long out=want;
by id;
var date;
id vname;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In your data, flag seems to always be constant for a given id, is this also true for your real data?&lt;/P&gt;</description>
      <pubDate>Tue, 08 Feb 2022 09:17:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-an-array/m-p/794954#M254948</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2022-02-08T09:17:34Z</dc:date>
    </item>
  </channel>
</rss>

