<?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 transpose and rearrange the columns/values in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581778#M17812</link>
    <description>&lt;P&gt;I don't think you are clearly stating your objective.&lt;/P&gt;
&lt;P&gt;It the idea is to have the names of the tests missed in alphabetical order I think you may be doing way more code than is needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It helps to provide data in the form of a data step so we can test things.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For your example data this provides the desired result&lt;/P&gt;
&lt;PRE&gt;data have;
  input studentid test_missed :$10. districtcode reason_not_tested;
datalines;
2 English 56 22
2 Algebra 56 22
2 History 56 22
2 Biology 56 22
2 Writing 71 22
3 History 89 19
4 English 62 17
5 English 77 20
5 Biology 77 20
5 Algebra 79 20
6 Writing 80 22
;
proc sort data=have;
   by  studentid test_missed;
run;
proc transpose data=have out=temp
   prefix=test_missed;
by  studentid;
var test_missed;
run;&lt;/PRE&gt;
&lt;P&gt;If by chance your student ID duplicates across districtcode values then use&lt;/P&gt;
&lt;P&gt;BY DISTRICTCODE STUDENTID;&lt;/P&gt;
&lt;P&gt;I the Sort and Transpose steps.&lt;/P&gt;</description>
    <pubDate>Fri, 16 Aug 2019 16:51:17 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2019-08-16T16:51:17Z</dc:date>
    <item>
      <title>Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581758#M17809</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;My data set :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;studentid&amp;nbsp; &amp;nbsp; &amp;nbsp; test_missed&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; districtcode&amp;nbsp; &amp;nbsp; reason_not_tested&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;History&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Writing&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;71&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;History&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;89&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 19&lt;/P&gt;&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 62&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 17&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 77&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;77&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 79&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&lt;/P&gt;&lt;P&gt;6&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Writing&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 80&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I transposed the data so each student only has 1 row. I have many more variables, but only 3 vars need to be transposed. I used the method presented in Paper 2785-2015 "Transpose Dataset by MERGE" by Shan, Kastin, Tabachneck, which is a 'life saver' for me. I was able to transpose but I just could not rearrange the test_missed (number).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data snt19;&lt;BR /&gt;set snt19;&lt;BR /&gt;by studentid ;&lt;BR /&gt;if first.studentid then n=0;&lt;BR /&gt;n+1;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql noprint ;&lt;BR /&gt;select distinct catt ('snt19 (where=(n=',left(put(n,8.)),&lt;BR /&gt;') rename= (districtcode=districtcode',left(put(n,8.)),&lt;BR /&gt;' reason_not_tested=reason_not_tested',left(put(n,8.)),&lt;BR /&gt;' test_missed=test_missed',left(put(n,8.)),&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;'))')&lt;BR /&gt;into :mer separated by ' '&lt;BR /&gt;from snt19 ;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;merge &amp;amp;mer ;&lt;BR /&gt;by studentid ;&lt;BR /&gt;drop n;&lt;/P&gt;&lt;P&gt;run;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;id&amp;nbsp; districtcode1&amp;nbsp; &amp;nbsp;reason_not_tested1&amp;nbsp; &amp;nbsp; &amp;nbsp;test_missed1&amp;nbsp; &amp;nbsp; &amp;nbsp;districtcode2&amp;nbsp; &amp;nbsp; &amp;nbsp;reason_not_tested2&amp;nbsp; test_missed2&amp;nbsp; districtcode3&amp;nbsp; ..... test_3&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;56&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; History&lt;/P&gt;&lt;P&gt;5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;77&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 77&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 79&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Algebra&lt;/P&gt;&lt;P&gt;and so on.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what I need is something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;id test_missed1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test_missed2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test_missed3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test_missed4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test_missed5&lt;/P&gt;&lt;P&gt;&amp;nbsp;2&amp;nbsp; &amp;nbsp; Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;History&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Writing&lt;/P&gt;&lt;P&gt;&amp;nbsp;3&amp;nbsp; &amp;nbsp; &amp;nbsp;History&lt;/P&gt;&lt;P&gt;&amp;nbsp;4&amp;nbsp; &amp;nbsp; &amp;nbsp;English&lt;/P&gt;&lt;P&gt;&amp;nbsp;5&amp;nbsp; &amp;nbsp; Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Biology&lt;/P&gt;&lt;P&gt;&amp;nbsp;6&amp;nbsp; &amp;nbsp; &amp;nbsp;Writing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this makes sense. Thanks all.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BScholtz&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;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 16:11:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581758#M17809</guid>
      <dc:creator>Bintang18</dc:creator>
      <dc:date>2019-08-16T16:11:20Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581770#M17810</link>
      <description>&lt;P&gt;Did you try a straight PROC TRANSPOSE? That's what it looks like to me.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Transposing data tutorials:&lt;BR /&gt;Long to Wide:&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/reshaping-data-long-to-wide-using-the-data-step/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/reshaping-data-long-to-wide-using-the-data-step/&lt;/A&gt;&lt;BR /&gt;&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"&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"&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;And sometimes a double transpose is needed for extra wide data sets:&lt;BR /&gt;&lt;A href="https://gist.github.com/statgeek/2321b6f62ab78d5bf2b0a5a8626bd7cd" target="_blank"&gt;https://gist.github.com/statgeek/2321b6f62ab78d5bf2b0a5a8626bd7cd&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 16:29:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581770#M17810</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-08-16T16:29:51Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581771#M17811</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input studentid      test_missed  : $20.     districtcode    reason_not_tested;
cards;
2                  English                56                           22
2                   Algebra               56                            22
2                   History                  56                          22
2                     Biology               56                           22
2                     Writing                 71                          22
3                     History                 89                          19
4                     English                  62                          17
5                   English                    77                          20
5                    Biology                   77                          20
5                    Algebra                  79                          20
6                   Writing                    80                            22
;

proc transpose data=have out=want prefix=Test_missed;
by studentid;
var test_missed;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 16 Aug 2019 16:30:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581771#M17811</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-08-16T16:30:18Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581778#M17812</link>
      <description>&lt;P&gt;I don't think you are clearly stating your objective.&lt;/P&gt;
&lt;P&gt;It the idea is to have the names of the tests missed in alphabetical order I think you may be doing way more code than is needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It helps to provide data in the form of a data step so we can test things.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For your example data this provides the desired result&lt;/P&gt;
&lt;PRE&gt;data have;
  input studentid test_missed :$10. districtcode reason_not_tested;
datalines;
2 English 56 22
2 Algebra 56 22
2 History 56 22
2 Biology 56 22
2 Writing 71 22
3 History 89 19
4 English 62 17
5 English 77 20
5 Biology 77 20
5 Algebra 79 20
6 Writing 80 22
;
proc sort data=have;
   by  studentid test_missed;
run;
proc transpose data=have out=temp
   prefix=test_missed;
by  studentid;
var test_missed;
run;&lt;/PRE&gt;
&lt;P&gt;If by chance your student ID duplicates across districtcode values then use&lt;/P&gt;
&lt;P&gt;BY DISTRICTCODE STUDENTID;&lt;/P&gt;
&lt;P&gt;I the Sort and Transpose steps.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 16:51:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581778#M17812</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-08-16T16:51:17Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581782#M17813</link>
      <description>&lt;P&gt;Like others have said, I don't think you stated exactly what you want. If you simply want to reorder the WANT file so that studentid is followed by districtcode1-districtcode5, reason_not_tested1-reason_not_tested5, and test_missed1-test_missed5, then you could do it by adding a proc sql and data step to the end of your current code. i.e.,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data snt19;
  input studentid test_missed $ districtcode reason_not_tested;
  cards;
2                  English                56                           22
2                   Algebra               56                            22
2                   History                  56                          22
2                     Biology               56                           22
2                     Writing                 71                          22
3                     History                 89                          19
4                     English                  62                          17
5                   English                    77                          20
5                    Biology                   77                          20
5                    Algebra                  79                          20
6                   Writing                    80                            22
;

data snt19;
set snt19;
by studentid ;
if first.studentid then n=0;
n+1;
run;

proc sql noprint ;
select distinct catt ('snt19 (where=(n=',left(put(n,8.)),
') rename= (districtcode=districtcode',left(put(n,8.)),
' reason_not_tested=reason_not_tested',left(put(n,8.)),
' test_missed=test_missed',left(put(n,8.)),
'))')
into :mer separated by ' '
from snt19 ;
quit;
 
data want;
merge &amp;amp;mer ;
by studentid ;
drop n;
run; 

proc sql noprint;
    select name
      into :retain separated by ' '
        from dictionary.columns
          where libname='WORK' and
                memname='WANT' and
                name ne 'studentid'
            order by name
  ;
quit;

data want;
  retain studentid &amp;amp;retain.;
  set want;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&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;</description>
      <pubDate>Fri, 16 Aug 2019 17:05:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581782#M17813</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2019-08-16T17:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581833#M17814</link>
      <description>&lt;P&gt;I'll try to make myself clearer. The main objective is to rearrange test_missed so, like studentid 2, after transposed his row should be :&lt;/P&gt;&lt;P&gt;test_missed1 test_missed2&amp;nbsp; test_missed3 test_missed4&amp;nbsp; test_missed5&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; History&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Writing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and NOT&amp;nbsp;&lt;/P&gt;&lt;P&gt;test_missed1&amp;nbsp; &amp;nbsp; &amp;nbsp; test_missed2&amp;nbsp; &amp;nbsp; &amp;nbsp;test_missed3&amp;nbsp; &amp;nbsp; &amp;nbsp;test_missed4&amp;nbsp; &amp;nbsp; &amp;nbsp; test_missed5&lt;/P&gt;&lt;P&gt;&amp;nbsp; English&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Algebra&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; History&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Biology&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Writing&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;P&gt;For some reasons, the agency wants test_missed to follow that order. It has nothing to do with alphabetical order, studentid&amp;nbsp; or anything else. If&amp;nbsp; student A missed only History then his test_missed1 is History. If student B missed English and Writing then his test_missed1 is English and test_missed2 is Writing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried if..then..method but it was so convoluted, I got nowhere.&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank&amp;nbsp; you again!&amp;nbsp;&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;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 19:25:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581833#M17814</guid>
      <dc:creator>Bintang18</dc:creator>
      <dc:date>2019-08-16T19:25:49Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581834#M17815</link>
      <description>So what are the rules for the ordering?</description>
      <pubDate>Fri, 16 Aug 2019 19:27:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581834#M17815</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-08-16T19:27:09Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581840#M17816</link>
      <description>&lt;P&gt;Does not look like you want alphabetical order because you have English before Biology.&lt;/P&gt;
&lt;P&gt;You will need to create a new variable you can use to sort.&lt;/P&gt;
&lt;P&gt;Do you have the order already in a dataset?&lt;/P&gt;
&lt;P&gt;If the list is known you might want to make a format (or perhaps an INformat).&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have ;
  input studentid $ test_missed :$20. districtcode reason_not_tested ;
cards;
 2  English  56  22
 2  Algebra  56  22
 2  History  56  22
 2  Biology  56  22
 2  Writing  71  22
 3  History  89  19
 4  English  62  17
 5  English  77  20
 5  Biology  77  20
 5  Algebra  79  20
 6  Writing  80  22
;

proc format ;
invalue test_order 
 'Algebra'=1
 'English'=2
 'Biology'=3
 'History'=4
 'Writing'=5
 other=999
;
run;

data middle;
 set have;
 test_order=input(test_missed,test_order.);
run;
proc sort data=middle;
  by studentid test_order;
run;

proc transpose data=middle out=want(drop=_name_) prefix=test_missed ;
  by studentid;
  var test_missed;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/31814i1EB771E779163255/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 19:41:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581840#M17816</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-08-16T19:41:36Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581842#M17817</link>
      <description>&lt;P&gt;Apparently they've been doing this for a while, follow a pattern (?) or maybe each course has different weigh. First time doing this.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 19:46:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581842#M17817</guid>
      <dc:creator>Bintang18</dc:creator>
      <dc:date>2019-08-16T19:46:03Z</dc:date>
    </item>
    <item>
      <title>Re: Data transpose and rearrange the columns/values</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581844#M17818</link>
      <description>Thanks Tom, this is exactly what I need.</description>
      <pubDate>Fri, 16 Aug 2019 20:08:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Data-transpose-and-rearrange-the-columns-values/m-p/581844#M17818</guid>
      <dc:creator>Bintang18</dc:creator>
      <dc:date>2019-08-16T20:08:28Z</dc:date>
    </item>
  </channel>
</rss>

