<?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: IF Statements Problem in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378453#M90939</link>
    <description>&lt;P&gt;You used a SUM statement.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pass + 1;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So the value is being retained between observations. &amp;nbsp;If you didn't want it retained then don't use a sum statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or force it back &amp;nbsp;to zero by adding&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pass=0;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;before your DO loop.&lt;/P&gt;</description>
    <pubDate>Sat, 22 Jul 2017 19:03:31 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2017-07-22T19:03:31Z</dc:date>
    <item>
      <title>IF Statements Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378452#M90938</link>
      <description>&lt;P&gt;I'm having a problem with stacking when the if the condition is met.&lt;/P&gt;&lt;P&gt;here is my output&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Obs id test1 test2 test3 test4 test5 pass 1 2 3 4&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;92&lt;/TD&gt;&lt;TD&gt;95&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;64&lt;/TD&gt;&lt;TD&gt;64&lt;/TD&gt;&lt;TD&gt;77&lt;/TD&gt;&lt;TD&gt;72&lt;/TD&gt;&lt;TD&gt;71&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;003&lt;/TD&gt;&lt;TD&gt;68&lt;/TD&gt;&lt;TD&gt;69&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;TD&gt;75&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;004&lt;/TD&gt;&lt;TD&gt;88&lt;/TD&gt;&lt;TD&gt;77&lt;/TD&gt;&lt;TD&gt;66&lt;/TD&gt;&lt;TD&gt;77&lt;/TD&gt;&lt;TD&gt;67&lt;/TD&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;the pass value should be 5,3,4,4 repectively&lt;/P&gt;&lt;P&gt;but it turn out that the values are stacking.&lt;/P&gt;&lt;P&gt;here is my code&lt;/P&gt;&lt;PRE&gt;data test (drop = i);&lt;BR /&gt;input id $ test1 test2 test3 test4 test5&lt;BR /&gt;;&lt;BR /&gt;array test (5) test1-test5;&lt;BR /&gt;do i =1 to 5;&lt;BR /&gt;if test(i) =test1 and test(i)&amp;gt;= 65 then pass + 1; &lt;BR /&gt;else if test(i) =test2 and test(i)&amp;gt;= 70 then pass + 1;&lt;BR /&gt;else if test(i) =test3 and test(i)&amp;gt;= 60 then pass + 1;&lt;BR /&gt;else if test(i) =test4 and test(i)&amp;gt;= 62 then pass + 1;&lt;BR /&gt;else if test(i) =test5 and test(i)&amp;gt;= 68 then pass + 1;&lt;BR /&gt;end;&lt;BR /&gt;datalines;&lt;BR /&gt;001 90 88 92 95 90&lt;BR /&gt;002 64 64 77 72 71&lt;BR /&gt;003 68 69 80 75 70&lt;BR /&gt;004 88 77 66 77 67&lt;BR /&gt;;&lt;BR /&gt;proc&lt;BR /&gt;print data = test;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;if you could simplified my array that would be appriciate.&lt;/P&gt;&lt;P&gt;here is my log&lt;/P&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter dijitContentPaneSingleChild"&gt;&lt;DIV class="dijitBorderContainer dijitContainer row-fluid dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitAlignCenter dijitContentPaneSingleChild dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane"&gt;&lt;DIV class="tabs dijitBorderContainer dijitContainer sasStudioTabsParentContainer dijitLayoutContainer dojoDndSource dojoDndTarget dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasStudioTabsTabContainer sasStudioTabsTabContainerVertical sasStudioTabsTop dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer sasStudioTabsTabContainerChild dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer dojoDndSource dojoDndTarget dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasSuiteTabs dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV&gt;&lt;DIV class="sasSource"&gt;1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;61&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;62 data test (drop = i);&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;63 input id $ test1 test2 test3 test4 test5&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;64 ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;65 array test (5) test1-test5;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;66 do i =1 to 5;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;67 if test(i) =test1 and test(i)&amp;gt;= 65 then pass + 1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;68 else if test(i) =test2 and test(i)&amp;gt;= 70 then pass + 1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;69 else if test(i) =test3 and test(i)&amp;gt;= 60 then pass + 1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;70 else if test(i) =test4 and test(i)&amp;gt;= 62 then pass + 1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;71 else if test(i) =test5 and test(i)&amp;gt;= 68 then pass + 1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;72 else if test(i) ^= test(i) then pass = 0;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;73 end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;74 datalines;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The data set WORK.TEST has 4 observations and 7 variables.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: DATA statement used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.02 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;cpu time 0.03 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;79 ;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;80 proc&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;81 print data = test;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;82&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;83 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;96&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="dijitContentPane statusBar dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignBottom"&gt;&amp;nbsp;Thank you guys&lt;/DIV&gt;</description>
      <pubDate>Sat, 22 Jul 2017 17:56:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378452#M90938</guid>
      <dc:creator>Koke</dc:creator>
      <dc:date>2017-07-22T17:56:59Z</dc:date>
    </item>
    <item>
      <title>Re: IF Statements Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378453#M90939</link>
      <description>&lt;P&gt;You used a SUM statement.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pass + 1;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So the value is being retained between observations. &amp;nbsp;If you didn't want it retained then don't use a sum statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or force it back &amp;nbsp;to zero by adding&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pass=0;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;before your DO loop.&lt;/P&gt;</description>
      <pubDate>Sat, 22 Jul 2017 19:03:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378453#M90939</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-07-22T19:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: IF Statements Problem</title>
      <link>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378460#M90946</link>
      <description>&lt;P&gt;Your logic is wrong. You are testing to find out which cutoff value to use based on the value of the current test instead of the test number. You can simplify the program by making a temporary&amp;nbsp;array to hold the passing level for each test.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test (drop = i);
  input id $ test1-test5;
  array test (5) ;
  array cutoff (5) _temporary_ (65 70 60 62 68);
  do i =1 to 5;
    pass=sum(pass,test(I)&amp;gt;=cutoff(I));
  end;
datalines;
001 90 88 92 95 90
002 64 64 77 72 71
003 68 69 80 75 70
004 88 77 66 77 67
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 22 Jul 2017 19:01:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/IF-Statements-Problem/m-p/378460#M90946</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-07-22T19:01:42Z</dc:date>
    </item>
  </channel>
</rss>

