<?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 Using a macro to create a new variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527758#M143955</link>
    <description>&lt;P&gt;I need help creating new variables using macros. Below is my dataset.&amp;nbsp; The objective variables are character variables.&amp;nbsp; I need to run a macro that searches each objective variable and creates a corresponding variable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;event&lt;/TD&gt;&lt;TD&gt;objective1&lt;/TD&gt;&lt;TD&gt;objective2&lt;/TD&gt;&lt;TD&gt;objective3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;1_6&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;7_8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;3_7&lt;/TD&gt;&lt;TD&gt;5_3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;small group&lt;/TD&gt;&lt;TD&gt;8_2&lt;/TD&gt;&lt;TD&gt;6_2&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;The macro would search each objective variable.&amp;nbsp; For example...&lt;/P&gt;&lt;P&gt;If Objective1= 1_6 then do;&lt;/P&gt;&lt;P&gt;Example1_6&amp;nbsp;= 1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired Results&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;event&lt;/TD&gt;&lt;TD&gt;objective1&lt;/TD&gt;&lt;TD&gt;objective2&lt;/TD&gt;&lt;TD&gt;objective3&lt;/TD&gt;&lt;TD&gt;Example1_6&lt;/TD&gt;&lt;TD&gt;Example4_2&lt;/TD&gt;&lt;TD&gt;Example7_8&lt;/TD&gt;&lt;TD&gt;Example3_7&lt;/TD&gt;&lt;TD&gt;Example5_3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;1_6&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;7_8&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;3_7&lt;/TD&gt;&lt;TD&gt;5_3&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;small group&lt;/TD&gt;&lt;TD&gt;8_2&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know how to create code for this?&lt;/P&gt;</description>
    <pubDate>Wed, 16 Jan 2019 16:56:42 GMT</pubDate>
    <dc:creator>Chelley</dc:creator>
    <dc:date>2019-01-16T16:56:42Z</dc:date>
    <item>
      <title>Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527758#M143955</link>
      <description>&lt;P&gt;I need help creating new variables using macros. Below is my dataset.&amp;nbsp; The objective variables are character variables.&amp;nbsp; I need to run a macro that searches each objective variable and creates a corresponding variable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;event&lt;/TD&gt;&lt;TD&gt;objective1&lt;/TD&gt;&lt;TD&gt;objective2&lt;/TD&gt;&lt;TD&gt;objective3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;1_6&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;7_8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;3_7&lt;/TD&gt;&lt;TD&gt;5_3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;small group&lt;/TD&gt;&lt;TD&gt;8_2&lt;/TD&gt;&lt;TD&gt;6_2&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;The macro would search each objective variable.&amp;nbsp; For example...&lt;/P&gt;&lt;P&gt;If Objective1= 1_6 then do;&lt;/P&gt;&lt;P&gt;Example1_6&amp;nbsp;= 1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired Results&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;event&lt;/TD&gt;&lt;TD&gt;objective1&lt;/TD&gt;&lt;TD&gt;objective2&lt;/TD&gt;&lt;TD&gt;objective3&lt;/TD&gt;&lt;TD&gt;Example1_6&lt;/TD&gt;&lt;TD&gt;Example4_2&lt;/TD&gt;&lt;TD&gt;Example7_8&lt;/TD&gt;&lt;TD&gt;Example3_7&lt;/TD&gt;&lt;TD&gt;Example5_3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;1_6&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;7_8&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;lecture&lt;/TD&gt;&lt;TD&gt;3_7&lt;/TD&gt;&lt;TD&gt;5_3&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;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;small group&lt;/TD&gt;&lt;TD&gt;8_2&lt;/TD&gt;&lt;TD&gt;4_2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know how to create code for this?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 16:56:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527758#M143955</guid>
      <dc:creator>Chelley</dc:creator>
      <dc:date>2019-01-16T16:56:42Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527760#M143956</link>
      <description>Looks like you're trying to create dummy variables. Does that sound correct?</description>
      <pubDate>Wed, 16 Jan 2019 17:04:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527760#M143956</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-01-16T17:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527764#M143957</link>
      <description>&lt;P&gt;Yes, that's correct!&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 17:08:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527764#M143957</guid>
      <dc:creator>Chelley</dc:creator>
      <dc:date>2019-01-16T17:08:25Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527769#M143959</link>
      <description>&lt;P&gt;For what purpose do you want to use these dummy variables?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 17:31:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527769#M143959</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-01-16T17:31:53Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527771#M143960</link>
      <description>&lt;P&gt;Also, why are no variables created for 8_2 and 6_2?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 17:33:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527771#M143960</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-01-16T17:33:36Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527772#M143961</link>
      <description>&lt;P&gt;There are several methods outlined here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-dummy-variables-Categorical-Variables/ta-p/308484" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-dummy-variables-Categorical-Variables/ta-p/308484&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And depending on what proc you're using you may not need to do this if it supports CLASS statements.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For your data, here's one specific way to do it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*Fake data;
data have;
infile cards dlm=',';
informat event $20.;
input event	(objective1-objective3) ($) ;
cards;
lecture,	1_6,	4_2,	7_8
lecture,	3_7,	5_3	, 
small group,	8_2,	6_2,	 
;;;;

*flip to a long format;
data have2;
set have;

array _ob(3) objective1-objective3;

row = _n_;
Value=1;

do i=1 to dim(_ob);
	if not missing(_ob(i)) then do;
		ID = vname(_ob(i));
		VarValue = _ob(i);
		output;
	end;
end;

drop objective1-objective3;
run;

*transpose to a wide format;
proc transpose data=have2 out=have3 prefix=Example;
by event row;
id varValue;
var Value;
run;

*change to 0/1;
proc stdize data=have3 out=have4 reponly missing=0;
run;

*merge back in original data;
data want;
merge have have4;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/255626"&gt;@Chelley&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I need help creating new variables using macros. Below is my dataset.&amp;nbsp; The objective variables are character variables.&amp;nbsp; I need to run a macro that searches each objective variable and creates a corresponding variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;event&lt;/TD&gt;
&lt;TD&gt;objective1&lt;/TD&gt;
&lt;TD&gt;objective2&lt;/TD&gt;
&lt;TD&gt;objective3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;lecture&lt;/TD&gt;
&lt;TD&gt;1_6&lt;/TD&gt;
&lt;TD&gt;4_2&lt;/TD&gt;
&lt;TD&gt;7_8&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;lecture&lt;/TD&gt;
&lt;TD&gt;3_7&lt;/TD&gt;
&lt;TD&gt;5_3&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;small group&lt;/TD&gt;
&lt;TD&gt;8_2&lt;/TD&gt;
&lt;TD&gt;6_2&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;The macro would search each objective variable.&amp;nbsp; For example...&lt;/P&gt;
&lt;P&gt;If Objective1= 1_6 then do;&lt;/P&gt;
&lt;P&gt;Example1_6&amp;nbsp;= 1.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Desired Results&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;event&lt;/TD&gt;
&lt;TD&gt;objective1&lt;/TD&gt;
&lt;TD&gt;objective2&lt;/TD&gt;
&lt;TD&gt;objective3&lt;/TD&gt;
&lt;TD&gt;Example1_6&lt;/TD&gt;
&lt;TD&gt;Example4_2&lt;/TD&gt;
&lt;TD&gt;Example7_8&lt;/TD&gt;
&lt;TD&gt;Example3_7&lt;/TD&gt;
&lt;TD&gt;Example5_3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;lecture&lt;/TD&gt;
&lt;TD&gt;1_6&lt;/TD&gt;
&lt;TD&gt;4_2&lt;/TD&gt;
&lt;TD&gt;7_8&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;lecture&lt;/TD&gt;
&lt;TD&gt;3_7&lt;/TD&gt;
&lt;TD&gt;5_3&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;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;small group&lt;/TD&gt;
&lt;TD&gt;8_2&lt;/TD&gt;
&lt;TD&gt;4_2&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does anyone know how to create code for this?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 17:38:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527772#M143961</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-01-16T17:38:40Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527824#M143965</link>
      <description>&lt;P&gt;It's just an example, but the code should create variables for each one&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 20:09:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527824#M143965</guid>
      <dc:creator>Chelley</dc:creator>
      <dc:date>2019-01-16T20:09:09Z</dc:date>
    </item>
    <item>
      <title>Re: Using a macro to create a new variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527830#M143967</link>
      <description>&lt;P&gt;Thank you!&amp;nbsp; This worked perfectly.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jan 2019 20:18:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-a-macro-to-create-a-new-variable/m-p/527830#M143967</guid>
      <dc:creator>Chelley</dc:creator>
      <dc:date>2019-01-16T20:18:51Z</dc:date>
    </item>
  </channel>
</rss>

