<?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: Coding new variable based on multiple conditions in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Coding-new-variable-based-on-multiple-conditions/m-p/775748#M246602</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

new_var = coalesce(var1, var2, var3) in (1, 2, 3);

run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Coalesce will get the single value from the 3 so you don't need all three comparisons.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;IN will check if the value is between 1 and 3, and if so, returns a 1, otherwise it returns 0.&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/318138"&gt;@monsterpie&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to create a new binary variable based on the conditions of multiple other variables, see below for example dataset. Var1-3 values can be 0-3, -99, or missing&amp;nbsp; and these are 3 non-overlapping variables (i.e. if there is a value for Var1, there will not be a value for Var2-3). I'd like my NEW_VAR to code for the presence of a "legit" value (which I am defining as either a 1-3 in any Var1-3.). basically if any of the values for Var1-3 = 0 or -99 then NEW_VAR=0, else NEW_VAR=1. The problem with the code I below is that everything gets coded as 0 in the NEW_VAR. Any help is much appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Attempted code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
if (var1&amp;gt;=1 or var2&amp;gt;=1 or var3&amp;gt;=1) then new_var=1;
if (var1&amp;lt;=0 or var2&amp;lt;=0 or var3&amp;lt;=0)then new_var=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Desired output:&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;ID&lt;/TD&gt;
&lt;TD width="20%"&gt;Var1&lt;/TD&gt;
&lt;TD width="20%"&gt;Var2&lt;/TD&gt;
&lt;TD width="20%"&gt;Var3&lt;/TD&gt;
&lt;TD width="20%"&gt;NEW_VAR&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;-99&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;4&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 21 Oct 2021 20:31:39 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2021-10-21T20:31:39Z</dc:date>
    <item>
      <title>Coding new variable based on multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Coding-new-variable-based-on-multiple-conditions/m-p/775742#M246599</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to create a new binary variable based on the conditions of multiple other variables, see below for example dataset. Var1-3 values can be 0-3, -99, or missing&amp;nbsp; and these are 3 non-overlapping variables (i.e. if there is a value for Var1, there will not be a value for Var2-3). I'd like my NEW_VAR to code for the presence of a "legit" value (which I am defining as either a 1-3 in any Var1-3.). basically if any of the values for Var1-3 = 0 or -99 then NEW_VAR=0, else NEW_VAR=1. The problem with the code I below is that everything gets coded as 0 in the NEW_VAR. Any help is much appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Attempted code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
if (var1&amp;gt;=1 or var2&amp;gt;=1 or var3&amp;gt;=1) then new_var=1;
if (var1&amp;lt;=0 or var2&amp;lt;=0 or var3&amp;lt;=0)then new_var=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Desired output:&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;ID&lt;/TD&gt;
&lt;TD width="20%"&gt;Var1&lt;/TD&gt;
&lt;TD width="20%"&gt;Var2&lt;/TD&gt;
&lt;TD width="20%"&gt;Var3&lt;/TD&gt;
&lt;TD width="20%"&gt;NEW_VAR&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;-99&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;4&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Thu, 21 Oct 2021 20:21:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Coding-new-variable-based-on-multiple-conditions/m-p/775742#M246599</guid>
      <dc:creator>monsterpie</dc:creator>
      <dc:date>2021-10-21T20:21:58Z</dc:date>
    </item>
    <item>
      <title>Re: Coding new variable based on multiple conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Coding-new-variable-based-on-multiple-conditions/m-p/775748#M246602</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

new_var = coalesce(var1, var2, var3) in (1, 2, 3);

run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Coalesce will get the single value from the 3 so you don't need all three comparisons.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;IN will check if the value is between 1 and 3, and if so, returns a 1, otherwise it returns 0.&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/318138"&gt;@monsterpie&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to create a new binary variable based on the conditions of multiple other variables, see below for example dataset. Var1-3 values can be 0-3, -99, or missing&amp;nbsp; and these are 3 non-overlapping variables (i.e. if there is a value for Var1, there will not be a value for Var2-3). I'd like my NEW_VAR to code for the presence of a "legit" value (which I am defining as either a 1-3 in any Var1-3.). basically if any of the values for Var1-3 = 0 or -99 then NEW_VAR=0, else NEW_VAR=1. The problem with the code I below is that everything gets coded as 0 in the NEW_VAR. Any help is much appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Attempted code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
if (var1&amp;gt;=1 or var2&amp;gt;=1 or var3&amp;gt;=1) then new_var=1;
if (var1&amp;lt;=0 or var2&amp;lt;=0 or var3&amp;lt;=0)then new_var=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Desired output:&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;ID&lt;/TD&gt;
&lt;TD width="20%"&gt;Var1&lt;/TD&gt;
&lt;TD width="20%"&gt;Var2&lt;/TD&gt;
&lt;TD width="20%"&gt;Var3&lt;/TD&gt;
&lt;TD width="20%"&gt;NEW_VAR&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;3&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;-99&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="20%"&gt;4&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;.&lt;/TD&gt;
&lt;TD width="20%"&gt;2&lt;/TD&gt;
&lt;TD width="20%"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Oct 2021 20:31:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Coding-new-variable-based-on-multiple-conditions/m-p/775748#M246602</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-10-21T20:31:39Z</dc:date>
    </item>
  </channel>
</rss>

