<?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 Naming transposed variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888243#M350954</link>
    <description>&lt;P&gt;I have a dataset which looks like below .&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;PRICE_DS&lt;/TD&gt;&lt;TD&gt;Loc_typ&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201301&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201303&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201310&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201312&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201401&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201402&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201301&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201303&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201310&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201312&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201401&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201402&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;But when i transpose data i want output names which should look like below&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc transpose data= out=(drop=_name_ _label_) prefix=column;&lt;/P&gt;&lt;P&gt;by loc_typ;&lt;/P&gt;&lt;P&gt;var price_ds;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;But i want all variables to be named like below is that possible ? Can anyone please help ?&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;Column1&lt;/TD&gt;&lt;TD&gt;Column2&lt;/TD&gt;&lt;TD&gt;Column3&lt;/TD&gt;&lt;TD&gt;Column4&lt;/TD&gt;&lt;TD&gt;Column5&lt;/TD&gt;&lt;TD&gt;Column6&lt;/TD&gt;&lt;TD&gt;Column7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Mon, 07 Aug 2023 22:21:27 GMT</pubDate>
    <dc:creator>jhh197</dc:creator>
    <dc:date>2023-08-07T22:21:27Z</dc:date>
    <item>
      <title>Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888243#M350954</link>
      <description>&lt;P&gt;I have a dataset which looks like below .&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;PRICE_DS&lt;/TD&gt;&lt;TD&gt;Loc_typ&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201301&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201303&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201310&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201312&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201401&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201402&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201301&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201303&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201310&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201312&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201401&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201402&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;But when i transpose data i want output names which should look like below&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc transpose data= out=(drop=_name_ _label_) prefix=column;&lt;/P&gt;&lt;P&gt;by loc_typ;&lt;/P&gt;&lt;P&gt;var price_ds;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;But i want all variables to be named like below is that possible ? Can anyone please help ?&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;Column1&lt;/TD&gt;&lt;TD&gt;Column2&lt;/TD&gt;&lt;TD&gt;Column3&lt;/TD&gt;&lt;TD&gt;Column4&lt;/TD&gt;&lt;TD&gt;Column5&lt;/TD&gt;&lt;TD&gt;Column6&lt;/TD&gt;&lt;TD&gt;Column7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25 MN SKP&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SP NC KPP&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;TD&gt;79.25&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 07 Aug 2023 22:21:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888243#M350954</guid>
      <dc:creator>jhh197</dc:creator>
      <dc:date>2023-08-07T22:21:27Z</dc:date>
    </item>
    <item>
      <title>Re: Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888249#M350959</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards delimiter='|';
input Date $ PRICE_DS Loc_typ $;
cards;
201301 |  65      | 25 MN SKP
201303 |  65      | 25 MN SKP
201310 |  65      | 25 MN SKP
201312 |  65      | 25 MN SKP
201401 |  65      | 25 MN SKP
201402 |  65      | 25 MN SKP
201301 |  79.25   | SP NC KPP
201303 |  79.25   | SP NC KPP
201310 |  79.25   | SP NC KPP
201312 |  79.25   | SP NC KPP
201401 |  79.25   | SP NC KPP
201402 |  79.25   | SP NC KPP
;
run;

proc transpose data=have out=want(drop=_name_ _label_) prefix=column;
 by loc_typ;
 var price_ds;
run;

proc datasets library=work NoList NoDetails memtype=DATA;
 modify want;
  rename column6 = column7;
  rename column5 = column6;        
  rename column4 = column5;
  rename column3 = column4;
  rename column2 = column3;
  rename column1 = column2;
  rename Loc_typ = column1;
run;
QUIT;
/* end of program */&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Koen&lt;/P&gt;
&lt;DIV id="ConnectiveDocSignExtentionInstalled" data-extension-version="1.0.4"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Mon, 07 Aug 2023 22:57:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888249#M350959</guid>
      <dc:creator>sbxkoenk</dc:creator>
      <dc:date>2023-08-07T22:57:09Z</dc:date>
    </item>
    <item>
      <title>Re: Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888250#M350960</link>
      <description>&lt;P&gt;Thank you so much for the reply . Is there any other way if i have 40 columns i need to rename them manually right what if new date in database then i need to update code manually . Is there any automatic way ?&lt;/P&gt;</description>
      <pubDate>Mon, 07 Aug 2023 22:59:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888250#M350960</guid>
      <dc:creator>jhh197</dc:creator>
      <dc:date>2023-08-07T22:59:52Z</dc:date>
    </item>
    <item>
      <title>Re: Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888253#M350963</link>
      <description>&lt;P&gt;Read you log or post your log. Your Proc Transpose code throws an error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;202  proc transpose data=have  out=(drop=_name_ _label_) prefix=column;
                                   -
                                   22
                                   76
ERROR 22-322: Expecting a name.
ERROR 76-322: Syntax error, statement will be ignored.
203  by loc_typ;
204  var price_ds;
205  run;
&lt;/PRE&gt;
&lt;P&gt;OUT= requires a data set name as the first thing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You aren't doing anything with variable labels (at least as shown) so _label_ in the drop isn't needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please provide data in the form of working data step code so we don't have to deal with artifacts from odd pictures or "table" layouts.&lt;/P&gt;
&lt;P&gt;You want to rename your Loc_typ variable to column1 before use. Adding a variable for an ID statement will work with the prefix to generate the desired column labels.&lt;/P&gt;
&lt;PRE&gt;data have;
 infile datalines dlm=',';
 input Date	PRICE_DS	Loc_typ $10.;
datalines;
201301,65,25 MN SKP
201303,65,25 MN SKP
201310,65,25 MN SKP
201312,65,25 MN SKP
201401,65,25 MN SKP
201402,65,25 MN SKP
201301,79.25,SP NC KPP
201303,79.25,SP NC KPP
201310,79.25,SP NC KPP
201312,79.25,SP NC KPP
201401,79.25,SP NC KPP
201402,79.25,SP NC KPP
;

data need;
   set have;
   by loc_typ;
   if first.loc_typ then row=2;
   else row+1;
   rename loc_typ=column1;
run;
proc transpose data=need
     out=want (drop=_name_ )
         prefix=column;
by column1;
id row;
var price_ds;
run;&lt;/PRE&gt;
&lt;P&gt;If you just rename the By variable to column1 then you get a conflict with the output data and lose the first transposed column because you "stole" the column name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Aug 2023 23:11:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888253#M350963</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-08-07T23:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888254#M350964</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards delimiter='|';
input Date $ PRICE_DS Loc_typ $;
cards;
201301 |  65      | 25 MN SKP
201303 |  65      | 25 MN SKP
201310 |  65      | 25 MN SKP
201312 |  65      | 25 MN SKP
201401 |  65      | 25 MN SKP
201402 |  65      | 25 MN SKP
201301 |  79.25   | SP NC KPP
201303 |  79.25   | SP NC KPP
201310 |  79.25   | SP NC KPP
201312 |  79.25   | SP NC KPP
201401 |  79.25   | SP NC KPP
201402 |  79.25   | SP NC KPP
;
run;

proc transpose data=have out=want(drop=_name_ _label_) prefix=column;
 by loc_typ;
 var price_ds;
run;

proc contents data=want out=outputds;   run;
proc sort     data=outputds; by varnum; run;

data _null_; 
 set outputds end=last;
 if last then do; call symputx("maximum",varnum); end;
run;
%PUT &amp;amp;=maximum;

%MACRO ABCXYZ;
proc datasets library=work NoList NoDetails memtype=DATA;
 modify want;
%DO i=&amp;amp;maximum. %TO 2 %BY -1;
  rename column%eval(&amp;amp;i.-1) = column&amp;amp;i.;
%END;
  rename Loc_typ = column1;
run;
QUIT;
%MEND  ABCXYZ;

options mprint;
%ABCXYZ
QUIT;
/* end of program */&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Koen&lt;/P&gt;
&lt;DIV id="ConnectiveDocSignExtentionInstalled" data-extension-version="1.0.4"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Mon, 07 Aug 2023 23:17:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888254#M350964</guid>
      <dc:creator>sbxkoenk</dc:creator>
      <dc:date>2023-08-07T23:17:04Z</dc:date>
    </item>
    <item>
      <title>Re: Naming transposed variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888263#M350966</link>
      <description>&lt;P&gt;thank you so much for all the help&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2023 00:13:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Naming-transposed-variables/m-p/888263#M350966</guid>
      <dc:creator>jhh197</dc:creator>
      <dc:date>2023-08-08T00:13:44Z</dc:date>
    </item>
  </channel>
</rss>

