<?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 can I simplify numeric IF-THEN-ELSE conditions? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153899#M30208</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A proc format will also work.&amp;nbsp; (not tested)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value mynum (min=8 max=32)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 -&amp;nbsp; 1000000 = 1000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0.00000000......1 to&amp;nbsp; 1000000 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; ............&lt;/P&gt;&lt;P&gt;&amp;nbsp; other = 1000000;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;b=put(A,mynum.);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Jun 2014 12:59:37 GMT</pubDate>
    <dc:creator>jwillis</dc:creator>
    <dc:date>2014-06-24T12:59:37Z</dc:date>
    <item>
      <title>How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153896#M30205</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am looking a better way to code the following IF-THEN-ELSE logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;IF COLUMN_A = 0 THEN COLUMN_B = 0;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ELSE IF 0 &amp;lt; COLUMN_A &amp;lt;= 1000000 THEN COLUMN_B = 1000000;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ELSE IF 1000000 &amp;lt; COLUMN_A &amp;lt;= 2000000 THEN COLUMN_B = 2000000;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ELSE IF 2000000 &amp;lt; COLUMN_A &amp;lt;= 5000000 THEN COLUMN_B = 5000000;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ELSE IF 5000000 &amp;lt; COLUMN_A &amp;lt;= 10000000 THEN COLUMN_B = 10000000;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;ELSE COLUMN_B = 10000000;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above is a simplified logic, I have go way more level to do in ELSE-IF statements. It would be great if someone can shed a light on a better way in coding this rather keep using ELSE-IF and type manually.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 09:39:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153896#M30205</guid>
      <dc:creator>J_CKY</dc:creator>
      <dc:date>2014-06-24T09:39:26Z</dc:date>
    </item>
    <item>
      <title>Re: How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153897#M30206</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, there are other methods to do blocks of if.&amp;nbsp; The first two that spring to mind are select-when for datastep, and case when for SQL (note that there are several forms of select and case):&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(column=0) then ...;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(1&amp;lt;=column&amp;lt;=2) then ...;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; otherwise...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Or */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select (column);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(0) then ...;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(1,2) then ...;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; otherwise...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create table want as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when column=0 then ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when 1&amp;lt;=column&amp;lt;=2 then ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else . end as ....,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when 0 then ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when 1 or 2 then ....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else ...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 10:10:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153897#M30206</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-06-24T10:10:51Z</dc:date>
    </item>
    <item>
      <title>Re: How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153898#M30207</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A third one is to use a look-up table. This way, you can drive this logic by data, not by hard coded statements.&lt;/P&gt;&lt;P&gt;You can us SQL inner/left join with between and logic to get column_b values.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 12:48:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153898#M30207</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2014-06-24T12:48:58Z</dc:date>
    </item>
    <item>
      <title>Re: How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153899#M30208</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A proc format will also work.&amp;nbsp; (not tested)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value mynum (min=8 max=32)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 -&amp;nbsp; 1000000 = 1000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0.00000000......1 to&amp;nbsp; 1000000 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; ............&lt;/P&gt;&lt;P&gt;&amp;nbsp; other = 1000000;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;b=put(A,mynum.);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 12:59:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153899#M30208</guid>
      <dc:creator>jwillis</dc:creator>
      <dc:date>2014-06-24T12:59:37Z</dc:date>
    </item>
    <item>
      <title>Re: How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153900#M30209</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, you do have to consider what should happen if COLUMN_A is less than 0 (missing values, included).&amp;nbsp; Here, you give COLUMN_B the final value of 10,000,000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assuming you can't find a mathematical pattern to apply a short formula, you can cut out half of the comparisons pretty easily.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if column_a &amp;lt; 0 then column_b = .;&lt;/P&gt;&lt;P&gt;else if column_a = 0 then column_b = 0;&lt;/P&gt;&lt;P&gt;else if column_a &amp;lt;= 1000000 then column_b = 1000000;&lt;/P&gt;&lt;P&gt;else if column_a &amp;lt;= 2000000 then column_b = 2000000;&lt;/P&gt;&lt;P&gt;else if column_a &amp;lt;= 5000000 then column_b = 5000000;&lt;/P&gt;&lt;P&gt;else column_b = 10000000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are looking for these exact comparisons, where for most ranges the upper value of column_a gets assigned to column_b, there may be a shorter way that applies a formula.&amp;nbsp; But I didn't want to approach it that way unless I knew that's what you wanted.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 13:13:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153900#M30209</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2014-06-24T13:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: How can I simplify numeric IF-THEN-ELSE conditions?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153901#M30210</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Better is INVALUE format&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; invalue mynum (min=8 max=32)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0 -&amp;nbsp; 1000000 = 1000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0.00000000......1 to&amp;nbsp; 1000000 */&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1000000 &amp;lt;- 2000000 = 2000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; other = 1000000;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;b= input(a,MYnum);&lt;/P&gt;&lt;P&gt;Unless you want to create character values for b.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jun 2014 16:23:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-can-I-simplify-numeric-IF-THEN-ELSE-conditions/m-p/153901#M30210</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-06-24T16:23:05Z</dc:date>
    </item>
  </channel>
</rss>

