<?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 How to carry over data from the columns to rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600031#M173337</link>
    <description>&lt;P&gt;Hello, I am using SAS 9.4&amp;nbsp;&lt;BR /&gt;I am currently trying to figure out how to move data from the columns of rows with the same ID and trying to move it all into the same row. There are two specific column datas that I want to move around, cname and cdate.&lt;/P&gt;
&lt;P&gt;I have a large set of data and there are a lot of different ID's in there with different amount of rows. Here's a sample snippet&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Set: Have&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cname&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cdate&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12/21/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/31/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/12/2018&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11/11/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12/3/2018&lt;/P&gt;
&lt;P&gt;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/4/2018&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/27/2019&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/6/2019&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/2/2019&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SET: Want&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; cname1, cname 2, cname 3, cname4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cdate1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cdate2&amp;nbsp; &amp;nbsp;cdate3&amp;nbsp; &amp;nbsp; cdate4&amp;nbsp; &amp;nbsp; &amp;nbsp;cdate5&amp;nbsp; &amp;nbsp; &amp;nbsp;cdate6&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org 1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org3&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; 12/21/18&amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/18&amp;nbsp; &amp;nbsp; 3/31/18&amp;nbsp;&amp;nbsp;&amp;nbsp;6/12/18&amp;nbsp; &amp;nbsp;11/11/18&amp;nbsp; &amp;nbsp;12/3/18&lt;/P&gt;
&lt;P&gt;B&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; org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/4/18&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; --&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/27/19&amp;nbsp; &amp;nbsp; &amp;nbsp; 1/6/19&amp;nbsp; &amp;nbsp; &amp;nbsp;2/2/19&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; --&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the end what I want is just one row per patient with extra columns stating all the extra cnames and cdates that they have. Each ID varies and may have 1-20 cdates and 1-10 unique cnames. Is this even possible or would I just have to manually do this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 29 Oct 2019 12:02:26 GMT</pubDate>
    <dc:creator>Kbug</dc:creator>
    <dc:date>2019-10-29T12:02:26Z</dc:date>
    <item>
      <title>How to carry over data from the columns to rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600031#M173337</link>
      <description>&lt;P&gt;Hello, I am using SAS 9.4&amp;nbsp;&lt;BR /&gt;I am currently trying to figure out how to move data from the columns of rows with the same ID and trying to move it all into the same row. There are two specific column datas that I want to move around, cname and cdate.&lt;/P&gt;
&lt;P&gt;I have a large set of data and there are a lot of different ID's in there with different amount of rows. Here's a sample snippet&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Set: Have&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cname&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cdate&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 12/21/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3/31/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6/12/2018&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11/11/2018&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12/3/2018&lt;/P&gt;
&lt;P&gt;B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/4/2018&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/27/2019&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1/6/2019&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/2/2019&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SET: Want&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ID&amp;nbsp; &amp;nbsp; &amp;nbsp; cname1, cname 2, cname 3, cname4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cdate1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cdate2&amp;nbsp; &amp;nbsp;cdate3&amp;nbsp; &amp;nbsp; cdate4&amp;nbsp; &amp;nbsp; &amp;nbsp;cdate5&amp;nbsp; &amp;nbsp; &amp;nbsp;cdate6&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org 1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org3&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; 12/21/18&amp;nbsp; &amp;nbsp; &amp;nbsp;1/1/18&amp;nbsp; &amp;nbsp; 3/31/18&amp;nbsp;&amp;nbsp;&amp;nbsp;6/12/18&amp;nbsp; &amp;nbsp;11/11/18&amp;nbsp; &amp;nbsp;12/3/18&lt;/P&gt;
&lt;P&gt;B&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; org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1/4/18&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; --&lt;/P&gt;
&lt;P&gt;C&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4/27/19&amp;nbsp; &amp;nbsp; &amp;nbsp; 1/6/19&amp;nbsp; &amp;nbsp; &amp;nbsp;2/2/19&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; --&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the end what I want is just one row per patient with extra columns stating all the extra cnames and cdates that they have. Each ID varies and may have 1-20 cdates and 1-10 unique cnames. Is this even possible or would I just have to manually do this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Oct 2019 12:02:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600031#M173337</guid>
      <dc:creator>Kbug</dc:creator>
      <dc:date>2019-10-29T12:02:26Z</dc:date>
    </item>
    <item>
      <title>Re: How to carry over data from the columns to rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600034#M173339</link>
      <description>Proc Transpose is what you want to use.</description>
      <pubDate>Tue, 29 Oct 2019 12:08:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600034#M173339</guid>
      <dc:creator>tomrvincent</dc:creator>
      <dc:date>2019-10-29T12:08:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to carry over data from the columns to rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600036#M173341</link>
      <description>&lt;P&gt;Because of the peculiar structure of your "want", you need to use two separate transpose runs:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID $ cname $  cdate :mmddyy10.;  
format cdate mmddyy10.;
datalines;
A          org1          12/21/2018
A          org2           1/1/2018
A          org1           3/31/2018
A          org3           6/12/2018 
A          org3           11/11/2018
A          org2           12/3/2018
B         org4            1/4/2018
C         org4           4/27/2019
C         org1           1/6/2019
C         org3           2/2/2019
;

proc sort
  data=have (keep=id cname)
  out=int1
  nodupkey
;
by id cname;
run;

data rawtrans1;
set int1;
by id;
count = substr(cname,4);
run;

proc transpose data=rawtrans1 out=trans1 (drop=_name_) prefix=cname;
by id;
var cname;
id count;
run;

data rawtrans2;
set have (keep=id cdate);
by id;
if first.id
then count = 1;
else count + 1;
run;

proc transpose data=rawtrans2 out=trans2 (drop=_name_) prefix=cdate;
by id;
var cdate;
id count;
run;

data want;
merge
  trans1
  trans2
;
by id;
run;

proc print data=want noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;ID    cname1    cname2    cname3    cname4        cdate1        cdate2        cdate3        cdate4        cdate5        cdate6

A      org1      org2      org3               12/21/2018    01/01/2018    03/31/2018    06/12/2018    11/11/2018    12/03/2018
B                                    org4     01/04/2018             .             .             .             .             .
C      org1                org3      org4     04/27/2019    01/06/2019    02/02/2019             .             .             .
&lt;/PRE&gt;</description>
      <pubDate>Tue, 29 Oct 2019 12:22:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600036#M173341</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-10-29T12:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to carry over data from the columns to rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600053#M173352</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/281708"&gt;@Kbug&lt;/a&gt;&amp;nbsp; &amp;nbsp;Once you quantify the max dimensions for an array subscript, it's pretty straight forward&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; 
data have;
input ID $       cname $         cdate :mmddyy10.;
format cdate mmddyy10.;
cards;
A          org1          12/21/2018
A          org2           1/1/2018
A          org1           3/31/2018
A          org3           6/12/2018 
A          org3           11/11/2018
A          org2           12/3/2018
B         org4            1/4/2018
C         org4           4/27/2019
C         org1           1/6/2019
C         org3           2/2/2019
;
/*Get the max dimensions for the array subscript*/
proc sql noprint; 
 select count(distinct cname) into :c_n trimmed from have;
 select max(c) into :c_d trimmed
 from (select  count(distinct cdate) as c from have group by id);
 quit;

%put &amp;amp;=c_n &amp;amp;=c_d;

data want;
 do _n_=1 by 1 until(last.id);
  set have;
  by id;
  array cname_(&amp;amp;c_n) $;
  array cdate_(&amp;amp;c_d);
  k=input(char(cname,length(cname)),best.);
  cname_(k)=cname;
  cdate_(_n_)=cdate;
 end;
 format cdate_: mmddyy10.;
 drop k;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;EDITED: A typo&lt;/P&gt;</description>
      <pubDate>Tue, 29 Oct 2019 13:15:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-carry-over-data-from-the-columns-to-rows/m-p/600053#M173352</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-10-29T13:15:25Z</dc:date>
    </item>
  </channel>
</rss>

