<?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: change the values to variable names in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/730001#M227259</link>
    <description>&lt;P&gt;For a report, use this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID :$3. Name $ State :$2. Date :mmddyy10. attrib1 $ attrib2 $;
format date yymmdd10.;
datalines;
123 John  AZ  1/1/2021  level A
123 John  AZ  1/2/2021  Score 120
123 John  AZ  1/3/2021  Maint1  202
123 John  AZ  1/4/2021  Maint3  501
123 John  AZ  1/5/2021  Maint2  302
123 John  AZ  1/6/2021  Maint4  101
234 Mary  CA  2/6/2021  Maint2  150
234 Mary  CA  2/7/2021  Maint1  101
;

proc report data=have;
column id name state date attrib2,attrib1 n;
define id /group;
define name /group;
define state /group;
define date / analysis min;
define attrib2 / "" display;
define attrib1 / "" across;
define n / noprint;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 30 Mar 2021 08:25:06 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2021-03-30T08:25:06Z</dc:date>
    <item>
      <title>change the values to variable names</title>
      <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729933#M227222</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dateset Have. It has multiple records by identifier ID, all the values are same except for attrib1 and attrib2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to change the attrib 1 values to column names and assign them the values of attrib2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Name&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;State&lt;/TD&gt;&lt;TD&gt;Date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;attrib1&lt;/TD&gt;&lt;TD&gt;attrib2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/1/2021&lt;/TD&gt;&lt;TD&gt;level&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/2/2021&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/3/2021&lt;/TD&gt;&lt;TD&gt;Maint1&lt;/TD&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/4/2021&lt;/TD&gt;&lt;TD&gt;Maint3&lt;/TD&gt;&lt;TD&gt;501&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/5/2021&lt;/TD&gt;&lt;TD&gt;Maint2&lt;/TD&gt;&lt;TD&gt;302&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/6/2021&lt;/TD&gt;&lt;TD&gt;Maint4&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;Mary&lt;/TD&gt;&lt;TD&gt;CA&lt;/TD&gt;&lt;TD&gt;2/6/2021&lt;/TD&gt;&lt;TD&gt;Maint2&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;Mary&lt;/TD&gt;&lt;TD&gt;CA&lt;/TD&gt;&lt;TD&gt;2/7/2021&lt;/TD&gt;&lt;TD&gt;Maint1&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Want:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Name&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;State&lt;/TD&gt;&lt;TD&gt;Date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;level&lt;/TD&gt;&lt;TD&gt;Maint1&lt;/TD&gt;&lt;TD&gt;Maint2&lt;/TD&gt;&lt;TD&gt;Maint3&lt;/TD&gt;&lt;TD&gt;Maint4&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;John&lt;/TD&gt;&lt;TD&gt;AZ&lt;/TD&gt;&lt;TD&gt;1/1/2021&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;202&lt;/TD&gt;&lt;TD&gt;302&lt;/TD&gt;&lt;TD&gt;501&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;234&lt;/TD&gt;&lt;TD&gt;Mary&lt;/TD&gt;&lt;TD&gt;CA&lt;/TD&gt;&lt;TD&gt;2/6/2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What will be the best way to achieve this? Any suggestions or solution is appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Nick&lt;/P&gt;</description>
      <pubDate>Tue, 30 Mar 2021 03:40:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729933#M227222</guid>
      <dc:creator>nickspencer</dc:creator>
      <dc:date>2021-03-30T03:40:52Z</dc:date>
    </item>
    <item>
      <title>Re: change the values to variable names</title>
      <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729936#M227223</link>
      <description>&lt;P&gt;Unless you are building a report, and not a data set, there is usually no good reason to do this. It can only make your life complicated.&lt;/P&gt;
&lt;P&gt;Now if you have a good reason, look at proc transpose.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Mar 2021 04:07:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729936#M227223</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2021-03-30T04:07:14Z</dc:date>
    </item>
    <item>
      <title>Re: change the values to variable names</title>
      <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729940#M227226</link>
      <description>&lt;P&gt;how about this code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Have;
input ID Name $ State $ Date:mmddyy10. attrib1 $ attrib2 $;
format date mmddyy10.;
datalines;
123	John	AZ	1/1/2021	level	A
123	John	AZ	1/2/2021	Score	120
123	John	AZ	1/3/2021	Maint1	202
123	John	AZ	1/4/2021	Maint3	501
123	John	AZ	1/5/2021	Maint2	302
123	John	AZ	1/6/2021	Maint4	101
234	Mary	CA	2/6/2021	Maint2	150
234	Mary	CA	2/7/2021	Maint1	101
;
run;
proc sort data=have;
  by id;
run;
data want;
  set have;
  by id;
  length level $1 Maint1-Maint4 score 8; 
  retain firstDate level Maint: score;
  if first.id then do;
    firstDate =date;
    call missing(level);
    call missing(Score);
    call missing(of Maint1-Maint4);
  end;
  select (attrib1);
    when('level') level =attrib2;
    when('Score') Score =input(attrib2,best.);
    when('Maint1') Maint1 =input(attrib2,best.);
    when('Maint2') Maint2 =input(attrib2,best.);
    when('Maint3') Maint3 =input(attrib2,best.);
    when('Maint4') Maint4 =input(attrib2,best.);
    otherwise;
  end;
  if last.id then do;
    date=firstDate;
    output;
  end;
  drop firstDate attrib:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Mar 2021 04:19:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729940#M227226</guid>
      <dc:creator>japelin</dc:creator>
      <dc:date>2021-03-30T04:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: change the values to variable names</title>
      <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729959#M227233</link>
      <description>&lt;P&gt;Fully agree to &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt; : the structure you want is hardly useful, except for a very, very low number of cases.&lt;/P&gt;
&lt;P&gt;The following solution uses proc transpose:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   length id 8 Name $ 8 State $ 2 Date 8 attrib1 $ 32 attrib2 $ 20;
   informat Date mmddyy10.;
   format date date9.;
   input ID Name State Date attrib1 attrib2;
   datalines;
123   John  AZ 1/1/2021 Level A
123   John  AZ 1/2/2021 Score 120
123   John  AZ 1/3/2021 Maint1   202
123   John  AZ 1/4/2021 Maint3   501
123   John  AZ 1/5/2021 Maint2   302
123   John  AZ 1/6/2021 Maint4   101
234   Mary  CA 2/6/2021 Maint2   150
234   Mary  CA 2/7/2021 Maint1   101
;


proc sort data=have out=sorted;
   by id attrib1;
run;

proc transpose data=sorted out=transposed(drop= _name_);
   by id;
   var attrib2;
   id attrib1;
run;

data want;
   merge sorted(keep= ID Name State Date) transposed;
   by ID;
  
  if first.ID;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Mar 2021 05:19:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/729959#M227233</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-03-30T05:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: change the values to variable names</title>
      <link>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/730001#M227259</link>
      <description>&lt;P&gt;For a report, use this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID :$3. Name $ State :$2. Date :mmddyy10. attrib1 $ attrib2 $;
format date yymmdd10.;
datalines;
123 John  AZ  1/1/2021  level A
123 John  AZ  1/2/2021  Score 120
123 John  AZ  1/3/2021  Maint1  202
123 John  AZ  1/4/2021  Maint3  501
123 John  AZ  1/5/2021  Maint2  302
123 John  AZ  1/6/2021  Maint4  101
234 Mary  CA  2/6/2021  Maint2  150
234 Mary  CA  2/7/2021  Maint1  101
;

proc report data=have;
column id name state date attrib2,attrib1 n;
define id /group;
define name /group;
define state /group;
define date / analysis min;
define attrib2 / "" display;
define attrib1 / "" across;
define n / noprint;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Mar 2021 08:25:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/change-the-values-to-variable-names/m-p/730001#M227259</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-03-30T08:25:06Z</dc:date>
    </item>
  </channel>
</rss>

