<?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 and make columns have names of pre-transposed values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950707#M371748</link>
    <description>&lt;P&gt;Transposing a long data set into a wide data set like this is a very poor way to proceed in SAS. This will make your programming a lot more difficult. Please explain what it is you will do once you have this wide data set. What can you do with the wide data set that can't be done with the long data set?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want a report with column names indicating the threshold level, don't transpose, use PROC REPORT.&lt;/P&gt;</description>
    <pubDate>Wed, 13 Nov 2024 23:15:22 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2024-11-13T23:15:22Z</dc:date>
    <item>
      <title>transpose and make columns have names of pre-transposed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950702#M371745</link>
      <description>&lt;P&gt;I need to transpose my data with set up as follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Original table&lt;/P&gt;&lt;P&gt;zip&amp;nbsp; risk&amp;nbsp; threshold&lt;/P&gt;&lt;P&gt;90001&amp;nbsp; 1.0&amp;nbsp; 18.22&lt;/P&gt;&lt;P&gt;90001&amp;nbsp; 1.5&amp;nbsp; 20.55&lt;/P&gt;&lt;P&gt;90001 2.0&amp;nbsp; 22.01&lt;/P&gt;&lt;P&gt;90001 2.5 25.95&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;96962 1.0 19.24&lt;/P&gt;&lt;P&gt;96962 1.5 21.45&lt;/P&gt;&lt;P&gt;96962 2.0 23.85&lt;/P&gt;&lt;P&gt;96962 2.5 25.47&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired table:&lt;/P&gt;&lt;P&gt;zip&amp;nbsp; threshold_risk_1.0&amp;nbsp; threshold_risk_1.5&amp;nbsp; threshold_risk_2.0&amp;nbsp; threshold_risk_2.5&lt;/P&gt;&lt;P&gt;90001&amp;nbsp;&amp;nbsp;18.22&amp;nbsp;&amp;nbsp;20.55&amp;nbsp;&amp;nbsp;22.01&amp;nbsp;&amp;nbsp;25.95&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;96962&amp;nbsp;&amp;nbsp;19.24&amp;nbsp;&amp;nbsp;21.45&amp;nbsp;&amp;nbsp;23.85&amp;nbsp;&amp;nbsp;25.47&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2024 20:43:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950702#M371745</guid>
      <dc:creator>Cal_Hottie</dc:creator>
      <dc:date>2024-11-13T20:43:49Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and make columns have names of pre-transposed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950706#M371747</link>
      <description>&lt;P&gt;PROC TRANSPOSE will get you close, the names aren't quite a match.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=have prefix=threshold_risk_;
by zip;
id risk;
value threshold;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Ensure your data is sorted by ZIP and RISK prior to transpose to have the data in the desired order.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/471111"&gt;@Cal_Hottie&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I need to transpose my data with set up as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Original table&lt;/P&gt;
&lt;P&gt;zip&amp;nbsp; risk&amp;nbsp; threshold&lt;/P&gt;
&lt;P&gt;90001&amp;nbsp; 1.0&amp;nbsp; 18.22&lt;/P&gt;
&lt;P&gt;90001&amp;nbsp; 1.5&amp;nbsp; 20.55&lt;/P&gt;
&lt;P&gt;90001 2.0&amp;nbsp; 22.01&lt;/P&gt;
&lt;P&gt;90001 2.5 25.95&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;96962 1.0 19.24&lt;/P&gt;
&lt;P&gt;96962 1.5 21.45&lt;/P&gt;
&lt;P&gt;96962 2.0 23.85&lt;/P&gt;
&lt;P&gt;96962 2.5 25.47&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Desired table:&lt;/P&gt;
&lt;P&gt;zip&amp;nbsp; threshold_risk_1.0&amp;nbsp; threshold_risk_1.5&amp;nbsp; threshold_risk_2.0&amp;nbsp; threshold_risk_2.5&lt;/P&gt;
&lt;P&gt;90001&amp;nbsp;&amp;nbsp;18.22&amp;nbsp;&amp;nbsp;20.55&amp;nbsp;&amp;nbsp;22.01&amp;nbsp;&amp;nbsp;25.95&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;96962&amp;nbsp;&amp;nbsp;19.24&amp;nbsp;&amp;nbsp;21.45&amp;nbsp;&amp;nbsp;23.85&amp;nbsp;&amp;nbsp;25.47&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2024 21:12:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950706#M371747</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2024-11-13T21:12:01Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and make columns have names of pre-transposed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950707#M371748</link>
      <description>&lt;P&gt;Transposing a long data set into a wide data set like this is a very poor way to proceed in SAS. This will make your programming a lot more difficult. Please explain what it is you will do once you have this wide data set. What can you do with the wide data set that can't be done with the long data set?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want a report with column names indicating the threshold level, don't transpose, use PROC REPORT.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2024 23:15:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950707#M371748</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2024-11-13T23:15:22Z</dc:date>
    </item>
    <item>
      <title>Re: transpose and make columns have names of pre-transposed values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950714#M371749</link>
      <description>&lt;P&gt;Your desired data structure only makes sense if you want to use Proc Print for reporting. It's very sub-optimal for any further data processing starting with variable names that don't comply with SAS naming standards.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below very close to what&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp;already proposed with two tweaks:&lt;BR /&gt;1. replace Value with correct Var statement in Proc Transpose&lt;/P&gt;
&lt;P&gt;2. apply a format to variable risk so the new variables get created with a name as desired.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines truncover;
  input zip risk threshold;
  datalines;
90001 1.0 18.22
90001 1.5 20.55
90001 2.0 22.01
90001 2.5 25.95
96962 1.0 19.24
96962 1.5 21.45
96962 2.0 23.85
96962 2.5 25.47
;

/* Step 1: Ensure data is sorted as required for next step                             */
/*         - skip this step if you can be sure that data is already sorted as required */
proc sort data=have;
  by zip risk;
run;

/* Step 2: Transpose the data */
proc transpose data=have out=transposed(drop=_NAME_) prefix=threshold_risk_;
  format risk f5.1; 
  by zip;
  id risk;
  var threshold;
run;

/* Step 3: Print the transposed data */
proc print data=transposed noobs;
  var zip threshold_risk_:;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1731545256744.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/102198i54ADBBEC30D52864/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1731545256744.png" alt="Patrick_0-1731545256744.png" /&gt;&lt;/span&gt;&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>Thu, 14 Nov 2024 00:51:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/transpose-and-make-columns-have-names-of-pre-transposed-values/m-p/950714#M371749</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-11-14T00:51:58Z</dc:date>
    </item>
  </channel>
</rss>

