<?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: Transposing in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243321#M45232</link>
    <description>&lt;P&gt;Code would look something like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data trans;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Array a alive_1 - alive_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; array r&amp;nbsp;&amp;nbsp;ret_1 - ret_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; array d deg_cum_1 - deg_cum_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; /* assumes same number of variables of each type*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; do i = 1 to dim(alive);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alive= a[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = r[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg_cum= d[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; drop alive_: ret_; deg_cum_: i;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
    <pubDate>Wed, 13 Jan 2016 20:31:25 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2016-01-13T20:31:25Z</dc:date>
    <item>
      <title>Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243313#M45231</link>
      <description>&lt;P&gt;I have a table with a structure like:&lt;/P&gt;&lt;P&gt;select cohort, number_Of_students, college, college_desc, gender, gender_desc,&lt;/P&gt;&lt;P&gt;residency, residency_desc, schev_ethnicity_desc, schev_ethnicity_id,&lt;/P&gt;&lt;P&gt;academic_origin, academic_origin_id,&lt;/P&gt;&lt;P&gt;alive_1, ret_1, deg_cum_1,&lt;/P&gt;&lt;P&gt;alive_2, ret_2, deg_cum_2,&lt;/P&gt;&lt;P&gt;alive_3, ret_3, deg_cum_3,&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;retention_type&lt;/P&gt;&lt;P&gt;from Graduation_Retention_Transfer&lt;/P&gt;&lt;P&gt;That I would like to transpose to:&lt;/P&gt;&lt;P&gt;select cohort, number_Of_students, college, college_desc, gender, gender_desc,&lt;/P&gt;&lt;P&gt;residency, residency_desc, schev_ethnicity_desc, schev_ethnicity_id,&lt;/P&gt;&lt;P&gt;academic_origin, academic_origin_id, year, alive, ret, deg_cum&lt;/P&gt;&lt;P&gt;Any recommendations on how I can do this in enterprise guide using SAS 9.4?&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jan 2016 20:02:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243313#M45231</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-13T20:02:16Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243321#M45232</link>
      <description>&lt;P&gt;Code would look something like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data trans;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Array a alive_1 - alive_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; array r&amp;nbsp;&amp;nbsp;ret_1 - ret_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; array d deg_cum_1 - deg_cum_n;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; /* assumes same number of variables of each type*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; do i = 1 to dim(alive);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alive= a[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = r[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deg_cum= d[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; drop alive_: ret_; deg_cum_: i;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jan 2016 20:31:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243321#M45232</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-13T20:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243325#M45233</link>
      <description>&lt;P&gt;I got the error&amp;nbsp;&lt;/P&gt;&lt;P&gt;ERROR: Alphabetic prefixes for enumerated variables (alive_1-alive_n) are different.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jan 2016 20:38:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243325#M45233</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-13T20:38:30Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243326#M45234</link>
      <description>&lt;P&gt;This might be because alive only goes to 3 and the others go to 8.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jan 2016 20:39:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243326#M45234</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-13T20:39:49Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243339#M45237</link>
      <description>&lt;P&gt;Note that I did point out that it assumed the same number of each of the 3 variables as that makes the most sense to transpose.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When they are not the same, what is the relationship between Alive , ret and deg_cum? Since at least 5 values of ret and deg_cum do not have a one-to-one with alive, which value of alive is associated with which ret and deg_cum? I hope there is a pattern of some sort. Possibly that the the 3rd Alive goes with the 4 through 8 ret and deg_cum.&lt;/P&gt;
&lt;P&gt;Show a few rows of in the input and what you would like the output to look like.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Jan 2016 21:23:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243339#M45237</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-13T21:23:08Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243494#M45278</link>
      <description>&lt;P&gt;Below is sample data&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA inputSet;&lt;BR /&gt;INFILE DATALINES DLM='#';&lt;BR /&gt;INPUT cohort number_Of_students college $ alive_1 ret_1 deg_cum_1&lt;BR /&gt;alive_2 ret_2 deg_cum_2&lt;BR /&gt;alive_3 ret_3 deg_cum_3&lt;BR /&gt;alive_4 deg_cum_4&lt;BR /&gt;alive_5 deg_cum_5;&lt;BR /&gt;DATALINES;&lt;BR /&gt;200510#12#Humanities#12#12#0#12#11#0#12#10#0#11#1#11#8&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc print data=inputSet;&lt;BR /&gt;Title 'input';&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;DATA resultSet;&lt;BR /&gt;INFILE DATALINES DLM='#';&lt;BR /&gt;INPUT cohort number_Of_students college $ year1 alive ret deg_cum;&lt;BR /&gt;DATALINES;&lt;BR /&gt;200510#12#Humanities#2005#12#12#0&lt;BR /&gt;200510#12#Humanities#2006#12#11#0&lt;BR /&gt;200510#12#Humanities#2007#12#10#0&lt;BR /&gt;200510#12#Humanities#2008#11#0#1&lt;BR /&gt;200510#12#Humanities#2009#11#0#8&lt;BR /&gt;;&lt;BR /&gt;PROC PRINT DATA=resultSet;&lt;BR /&gt;TITLE 'result';&lt;BR /&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I mixed up that whole alive thing.. being alive is important.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jan 2016 15:56:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243494#M45278</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-14T15:56:12Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243518#M45285</link>
      <description>&lt;P&gt;A few more questions about the input data.&lt;/P&gt;
&lt;P&gt;Your example data shows RET not&amp;nbsp;Alive as not always with Deg_cum. Is that the actual case?&lt;/P&gt;
&lt;P&gt;Do you ever have records with more&amp;nbsp;&amp;nbsp;than Alive_5 and Deg_cum_5?&lt;/P&gt;
&lt;P&gt;Are any of the following scenarios NEVER going to occur in your data? Or if they do what would the output look like&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA inputSet;
INFILE DATALINES DLM='#';
INPUT cohort number_Of_students college $ alive_1 ret_1 deg_cum_1
alive_2 ret_2 deg_cum_2
alive_3 ret_3 deg_cum_3
alive_4 deg_cum_4
alive_5 deg_cum_5;
DATALINES;
200510#12#Humanities#12#12#0#12#11#0#12#10#0#11#1#​11#8
200511#12#Humanities#12#12#0#12#11#0#12#10#0#11#1##
200512#12#Humanities#12#12#0#12#11#0#######
200513#12#Humanities#12#12#0#12#11#0####11#1#​11#8
200514#12#Humanities#12#12#0#12#11#0#12#10#0#11#1#​11#8
200515#12#Humanities#12#12#0####12#10#0#11#1#​11#8
200516#12#Humanities#12#12#0####12##0#11#1#​11#8
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If there are always 5 and RET is only defined for 3 then this might work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Data trans;
   set have;
   Array a alive_1 - alive_5;
   array r  ret_1 - ret_3;
   array d deg_cum_1 - deg_cum_5;
   /* assumes same number of variables of each type*/
   do i = 1 to dim&lt;STRONG&gt;(a)&lt;/STRONG&gt;;
       alive= a[i];
       if i le 3 then ret = r[i]; else ret =0;
       deg_cum= d[i];
       output;
  end;
  drop alive_: ret_; deg_cum_: i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Jan 2016 18:53:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243518#M45285</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-14T18:53:46Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243531#M45290</link>
      <description>&lt;P&gt;Ret always ends at 3 and the other two variables always keep going to the same number as all other rows.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I run the example I get:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ERROR: The DIM, LBOUND, and HBOUND functions require an array name for the first argument.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jan 2016 17:55:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243531#M45290</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-14T17:55:20Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243547#M45293</link>
      <description>&lt;P&gt;Change dim(alive) to dim(a).&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jan 2016 18:54:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243547#M45293</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-14T18:54:54Z</dc:date>
    </item>
    <item>
      <title>Re: Transposing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243570#M45302</link>
      <description>&lt;P&gt;Ballard, that worked thanks for your help on this. &amp;nbsp;I was having a really hard time with it.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jan 2016 20:05:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transposing/m-p/243570#M45302</guid>
      <dc:creator>DavidPhillips2</dc:creator>
      <dc:date>2016-01-14T20:05:56Z</dc:date>
    </item>
  </channel>
</rss>

