<?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: How to select several variables' non-missing value to match the value we 've already known? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858795#M339311</link>
    <description>&lt;P&gt;Factoring out a common expression can at least make the code a bit more readable.&lt;/P&gt;
&lt;PRE&gt;if (R9MEMRY=1 or R9MEMRYE=1) then do;
   if adrd10=1 then adrd9=1;
   else if ( adrd10=. and adrd11=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=.) then adrd9=1;
   else adrd9=0;
end;
else adrd9=0;&lt;/PRE&gt;
&lt;P&gt;However providing &lt;STRONG&gt;rules&lt;/STRONG&gt; and information about the variables is better.&lt;/P&gt;
&lt;P&gt;For instance if the variables adrd10 through adrd13 can only have the values 1 or missing &lt;STRONG&gt;and&lt;/STRONG&gt; you want to set ardrd=1 when&amp;nbsp; only one of them is =1 or all are missing this could reduce to :&lt;/P&gt;
&lt;PRE&gt;if (R9MEMRY=1 or R9MEMRYE=1) then adrd9= (sum (of adrd10-adrd13) le 1);
else adrd9=0;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since we do not have all of the possible values of adrd10 through adrd13 and there is no actual rule about use of those variables provided then it is pretty hard to recommend a generic "easier".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have variables that are 1/0/missing or 1/missing then you can tell things like how many are = 1 with the SUM function; if any are =1 with the MAX function; the NMISS function will return the number of missing; the Range function will return 0 if all of the non-missing values have the same numeric value (all 1 or all 0 for example). So these functions may with care provide lots of information.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Caution: Do pay attention to the OF in the sum(of var1-varn) syntax. If you miss the OF, which indicates "use a list of values", the result will be that of the arithmetic var1-varn which seldom is the same. Also with this syntax all of the variables have to be sequentially numbered with no gaps. There are ways around gaps by using multiple sequences separated by commas or just using all of the variable names explicitly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Feb 2023 17:46:25 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2023-02-14T17:46:25Z</dc:date>
    <item>
      <title>How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858782#M339307</link>
      <description>&lt;P&gt;Is there any easier way to do this? Thanks!&amp;nbsp;&lt;/P&gt;&lt;P&gt;all variables included:0, 1 , and missing.&lt;/P&gt;&lt;P&gt;if (R9MEMRY=1 or R9MEMRYE=1) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;if&amp;nbsp;(R10ALZHE=1 or R10ALZHEE=1 or R10DEMEN=1 or R10DEMENE=1) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=1 or R11ALZHEE=1 or R11DEMEN=1 or R11DEMENE=1)) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=. and R11ALZHEE=. and R11DEMEN=. and R11DEMENE=.) and (R12ALZHE=1 or R12ALZHEE=1 or R12DEMEN=1 or R12DEMENE=1)) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=. and R11ALZHEE=. and R11DEMEN=. and R11DEMENE=.)&lt;BR /&gt;and (R12ALZHE=. and R12ALZHEE=. and R12DEMEN=. and R12DEMENE=.) ) then adrd9=1;&lt;BR /&gt;else adrd9=0;&lt;BR /&gt;end;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;R9MEMRYE&lt;/TD&gt;&lt;TD&gt;R9MEMRY&lt;/TD&gt;&lt;TD&gt;R10ALZHE&lt;/TD&gt;&lt;TD&gt;R10ALZHEE&lt;/TD&gt;&lt;TD&gt;R10DEMEN&lt;/TD&gt;&lt;TD&gt;R10DEMENE&lt;/TD&gt;&lt;TD&gt;R11ALZHE&lt;/TD&gt;&lt;TD&gt;R11ALZHEE&lt;/TD&gt;&lt;TD&gt;R11DEMEN&lt;/TD&gt;&lt;TD&gt;R11DEMENE&lt;/TD&gt;&lt;TD&gt;R12ALZHE&lt;/TD&gt;&lt;TD&gt;R12ALZHEE&lt;/TD&gt;&lt;TD&gt;R12DEMEN&lt;/TD&gt;&lt;TD&gt;R12DEMENE&lt;/TD&gt;&lt;TD&gt;adrd9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;.S=Skip&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;1.Yes&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0.No&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 14 Feb 2023 19:18:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858782#M339307</guid>
      <dc:creator>nwang5</dc:creator>
      <dc:date>2023-02-14T19:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858786#M339308</link>
      <description>&lt;P&gt;Kind of depends on what are the set of possible values for those 4 variables.&amp;nbsp; Why not build a truth table a look at it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You seem to be setting ADRD9 to either 0 or 1.&amp;nbsp; In that case you just set assign the result of a boolean expression to the variable instead.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;adrd9 = ( ... your boolean expression here ) ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;When it is TRUE the value will be 1.&amp;nbsp; When it is FALSE the value will be 0.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 17:21:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858786#M339308</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2023-02-14T17:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858795#M339311</link>
      <description>&lt;P&gt;Factoring out a common expression can at least make the code a bit more readable.&lt;/P&gt;
&lt;PRE&gt;if (R9MEMRY=1 or R9MEMRYE=1) then do;
   if adrd10=1 then adrd9=1;
   else if ( adrd10=. and adrd11=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=.) then adrd9=1;
   else adrd9=0;
end;
else adrd9=0;&lt;/PRE&gt;
&lt;P&gt;However providing &lt;STRONG&gt;rules&lt;/STRONG&gt; and information about the variables is better.&lt;/P&gt;
&lt;P&gt;For instance if the variables adrd10 through adrd13 can only have the values 1 or missing &lt;STRONG&gt;and&lt;/STRONG&gt; you want to set ardrd=1 when&amp;nbsp; only one of them is =1 or all are missing this could reduce to :&lt;/P&gt;
&lt;PRE&gt;if (R9MEMRY=1 or R9MEMRYE=1) then adrd9= (sum (of adrd10-adrd13) le 1);
else adrd9=0;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since we do not have all of the possible values of adrd10 through adrd13 and there is no actual rule about use of those variables provided then it is pretty hard to recommend a generic "easier".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have variables that are 1/0/missing or 1/missing then you can tell things like how many are = 1 with the SUM function; if any are =1 with the MAX function; the NMISS function will return the number of missing; the Range function will return 0 if all of the non-missing values have the same numeric value (all 1 or all 0 for example). So these functions may with care provide lots of information.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Caution: Do pay attention to the OF in the sum(of var1-varn) syntax. If you miss the OF, which indicates "use a list of values", the result will be that of the arithmetic var1-varn which seldom is the same. Also with this syntax all of the variables have to be sequentially numbered with no gaps. There are ways around gaps by using multiple sequences separated by commas or just using all of the variable names explicitly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 17:46:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858795#M339311</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-02-14T17:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858805#M339313</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/439162"&gt;@nwang5&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;if ((R9MEMRY=1 or R9MEMRYE=1) and adrd10=1) then adrd9=1;&lt;BR /&gt;else if ((R9MEMRY=1 or R9MEMRYE=1) and adrd10=. and adrd11=1) then adrd9=1;&lt;BR /&gt;else if ((R9MEMRY=1 or R9MEMRYE=1) and adrd10=. and adrd11=. and adrd12=1) then adrd9=1;&lt;BR /&gt;else if ((R9MEMRY=1 or R9MEMRYE=1) and adrd10=. and adrd11=. and adrd12=. and&amp;nbsp; adrd13=1) then adrd9=1;&lt;BR /&gt;else if ((R9MEMRY=1 or R9MEMRYE=1) and adrd10=. and adrd11=. and adrd12=. and&amp;nbsp; adrd13=.) then adrd9=1;&lt;/P&gt;
&lt;P&gt;else adrd9=0;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;id&lt;/TD&gt;
&lt;TD&gt;R9MEMRY&lt;/TD&gt;
&lt;TD&gt;R9MEMRY&lt;/TD&gt;
&lt;TD&gt;ADRD10&lt;/TD&gt;
&lt;TD&gt;ADRD11&lt;/TD&gt;
&lt;TD&gt;ADRD12&lt;/TD&gt;
&lt;TD&gt;ADRD13&lt;/TD&gt;
&lt;TD&gt;adrd9(expected)&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;.&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;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;According to your SAS code (and reading the second "R9MEMRY" column as "R9MEMRY&lt;STRONG&gt;E&lt;/STRONG&gt;"),&amp;nbsp;&lt;FONT face="courier new,courier"&gt;adrd9&lt;/FONT&gt; should be &lt;STRONG&gt;0&lt;/STRONG&gt; for id=4.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The part of the condition regarding &lt;FONT face="courier new,courier"&gt;adrd10-adrd13&lt;/FONT&gt; can be simplified with the &lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lefunctionsref/p1vjttz6nuankzn1gh4z3wgcu0bf.htm" target="_blank" rel="noopener"&gt;COALESCE function&lt;/A&gt;&amp;nbsp;regardless of the possible values of these four variables, &lt;EM&gt;except&lt;/EM&gt; if these include &lt;A href="https://documentation.sas.com/doc/en/lrcon/9.4/p1xr9fm7y8kek5n1hpj008tnu1a1.htm" target="_blank" rel="noopener"&gt;&lt;EM&gt;special&lt;/EM&gt; missing values&lt;/A&gt;:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;adrd9=(R9MEMRY=1 | R9MEMRYE=1) &amp;amp; coalesce(of adrd10-adrd13) in (1,.);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If the only possible non-missing values of&amp;nbsp;&lt;FONT face="courier new,courier"&gt;R9MEMRY&lt;/FONT&gt; and &lt;FONT face="courier new,courier"&gt;R9MEMRYE&lt;/FONT&gt; are 0 and 1, you can simplify this slightly further:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;adrd9=(R9MEMRY | R9MEMRYE) &amp;amp; coalesce(of adrd10-adrd13) in (1,.);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 14 Feb 2023 18:46:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858805#M339313</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2023-02-14T18:46:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858808#M339314</link>
      <description>&lt;P&gt;Here is an example of a data set that builds ALL of the combinations of your independent variables and what I think you intend, since you do not have a clear rule stated about how to caculate the ardr9. If all 729 results match your expectations then the assignment code is "easier".&lt;/P&gt;
&lt;PRE&gt;if (R9MEMRY=1 or R9MEMRYE=1) then do;
   if adrd10=1 then adrd9=1;
   else if ( adrd10=. and adrd11=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=1) then adrd9=1;
   else if ( adrd10=. and adrd11=. and adrd12=. and  adrd13=.) then adrd9=1;
   else adrd9=0;
end;
else adrd9=0;


if (R9MEMRY=1 or R9MEMRYE=1) then adrd9= (sum (of adrd10-adrd13) le 1);
else adrd9=0;

data example;
  do R9MEMRY=.,0,1;
  do R9MEMRYe=.,0,1;
  do adrd10= .,0,1;
  do adrd11= .,0,1;
  do adrd12= .,0,1;
  do adrd13= .,0,1;
      if (R9MEMRY=1 or R9MEMRYE=1) then adrd9= (range (of adrd10-adrd13)= 0 and max(of adrd10-adrd13)=1);
      else adrd9=0;
      output;
  end;
  end;
  end;
  end;
  end;
  end;
run;
  &lt;/PRE&gt;</description>
      <pubDate>Tue, 14 Feb 2023 18:57:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858808#M339314</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-02-14T18:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858823#M339318</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;&lt;STRONG&gt;So, &lt;/STRONG&gt;why the change in variables and logic? You&amp;nbsp; are making it appear as if multiple people completely ignored your question and posted random next to meaningless code. Also, you still are not stating any &lt;U&gt;&lt;STRONG&gt;rule&lt;/STRONG&gt;&lt;/U&gt; as to what the code is supposed to be doing so how could we know an "easier" way when we don't even know what this is supposed to do.&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;Did you read any of the bit I showed about how to use summary functions such as MAX, SUM to shorten code like&lt;BR /&gt;if (R10ALZHE=1 or R10ALZHEE=1 or R10DEMEN=1 or R10DEMENE=1)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/439162"&gt;@nwang5&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Is there any easier way to do this? Thanks!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;all variables included:0, 1 , and missing.&lt;/P&gt;
&lt;P&gt;if (R9MEMRY=1 or R9MEMRYE=1) then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;if&amp;nbsp;(R10ALZHE=1 or R10ALZHEE=1 or R10DEMEN=1 or R10DEMENE=1) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=1 or R11ALZHEE=1 or R11DEMEN=1 or R11DEMENE=1)) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=. and R11ALZHEE=. and R11DEMEN=. and R11DEMENE=.) and (R12ALZHE=1 or R12ALZHEE=1 or R12DEMEN=1 or R12DEMENE=1)) then adrd9=1;&lt;BR /&gt;else if ((R10ALZHE=. and R10ALZHEE=. and R10DEMEN=. and R10DEMENE=.) and (R11ALZHE=. and R11ALZHEE=. and R11DEMEN=. and R11DEMENE=.)&lt;BR /&gt;and (R12ALZHE=. and R12ALZHEE=. and R12DEMEN=. and R12DEMENE=.) ) then adrd9=1;&lt;BR /&gt;else adrd9=0;&lt;BR /&gt;end;&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Obs&lt;/TD&gt;
&lt;TD&gt;R9MEMRYE&lt;/TD&gt;
&lt;TD&gt;R9MEMRY&lt;/TD&gt;
&lt;TD&gt;R10ALZHE&lt;/TD&gt;
&lt;TD&gt;R10ALZHEE&lt;/TD&gt;
&lt;TD&gt;R10DEMEN&lt;/TD&gt;
&lt;TD&gt;R10DEMENE&lt;/TD&gt;
&lt;TD&gt;R11ALZHE&lt;/TD&gt;
&lt;TD&gt;R11ALZHEE&lt;/TD&gt;
&lt;TD&gt;R11DEMEN&lt;/TD&gt;
&lt;TD&gt;R11DEMENE&lt;/TD&gt;
&lt;TD&gt;R12ALZHE&lt;/TD&gt;
&lt;TD&gt;R12ALZHEE&lt;/TD&gt;
&lt;TD&gt;R12DEMEN&lt;/TD&gt;
&lt;TD&gt;R12DEMENE&lt;/TD&gt;
&lt;TD&gt;adrd9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;.S=Skip&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;1.Yes&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0.No&lt;/TD&gt;
&lt;TD&gt;0&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;</description>
      <pubDate>Tue, 14 Feb 2023 20:34:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858823#M339318</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-02-14T20:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to select several variables' non-missing value to match the value we 've already known?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858841#M339329</link>
      <description>Sorry for the lots of changes. This is original data I use. I read all the responses carefully and tried to use the codes.</description>
      <pubDate>Tue, 14 Feb 2023 21:57:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-select-several-variables-non-missing-value-to-match-the/m-p/858841#M339329</guid>
      <dc:creator>nwang5</dc:creator>
      <dc:date>2023-02-14T21:57:46Z</dc:date>
    </item>
  </channel>
</rss>

