<?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: Repeated IF/THEN conditions. Can I have more efficient way? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317305#M69455</link>
    <description>&lt;P&gt;Unless I am mistaking your output, then a simple where clause can get you that output - note how I put test data as a datastep - this makes it easier for us to see your structure:&lt;/P&gt;
&lt;PRE&gt;data have;
  input ID $ City $ Country $;
datalines;
A Yes Yes
A No No 
A Yes Yes
;
run;
data want;
  set have (where=(city="Yes" and country="Yes"));
  tour="Yes";
run;&lt;/PRE&gt;</description>
    <pubDate>Wed, 07 Dec 2016 14:37:39 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2016-12-07T14:37:39Z</dc:date>
    <item>
      <title>Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317303#M69454</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is raw data ‘Tour’&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;City&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Country&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Tour&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to make my codes as following:&lt;/P&gt;&lt;P&gt;1. If people who had ID had visited city &amp;amp; country, I would like to check Tour=’Yes’ (I have to count Tour=‘Yes’)&lt;/P&gt;&lt;P&gt;2. I would like to delete the observation of which Tour = No if people have a record of ‘Tour=Yes’&lt;/P&gt;&lt;P&gt;3. If people had not visited any city &amp;amp; country, I would like to leave it as ‘Tour=No’&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is what I want to get&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;City&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Country&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Tour&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;No&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Yes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I made my codes as follows&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Proc sort data= work.Tour;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by ID;&lt;/P&gt;&lt;P&gt;Run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data work.Tour_I_want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set work.Tour;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.ID and last.ID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if City = ‘Yes’ and Country = ‘Yes’ then Tour = 'Yes';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; Tour = 'No';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if&amp;nbsp; last.ID=0 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if City = ‘Yes’ and Country = ‘Yes’ &amp;nbsp;then do;&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; Tour = 'Yes'; retain Tour; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else delete;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if last.ID then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Tour = '1' then delete;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if City = ‘Yes’ and Country = ‘Yes’ then Tour = '1';&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; else Tour = '0';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This seems not efficient. I repeated the condition(City=’Yes’ and Country=’Yes’) three times.&lt;/P&gt;&lt;P&gt;Could you tell me the better way for this? Thank you in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* I am using SAS university.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Dec 2016 14:31:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317303#M69454</guid>
      <dc:creator>Plessein</dc:creator>
      <dc:date>2016-12-07T14:31:22Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317305#M69455</link>
      <description>&lt;P&gt;Unless I am mistaking your output, then a simple where clause can get you that output - note how I put test data as a datastep - this makes it easier for us to see your structure:&lt;/P&gt;
&lt;PRE&gt;data have;
  input ID $ City $ Country $;
datalines;
A Yes Yes
A No No 
A Yes Yes
;
run;
data want;
  set have (where=(city="Yes" and country="Yes"));
  tour="Yes";
run;&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Dec 2016 14:37:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317305#M69455</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2016-12-07T14:37:39Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317308#M69457</link>
      <description>&lt;P&gt;What if City=No and Country=Yes?&amp;nbsp; What should happen then?&lt;/P&gt;</description>
      <pubDate>Wed, 07 Dec 2016 14:46:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317308#M69457</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-12-07T14:46:05Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317325#M69465</link>
      <description>&lt;P&gt;Next code gives the wanted result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;infile datalines;&lt;BR /&gt;input id $ city $ country $;&lt;BR /&gt;datalines;&lt;BR /&gt;A Yes Yes&lt;BR /&gt;A No No&lt;BR /&gt;A Yes Yes&lt;BR /&gt;B No No&lt;BR /&gt;B Yes Yes&lt;BR /&gt;C No No&lt;BR /&gt;D Yes Yes&lt;BR /&gt;; run;&lt;/P&gt;
&lt;P&gt;data want;&lt;BR /&gt; set have;&lt;BR /&gt; by ID;&lt;BR /&gt; length Tour $3;&lt;BR /&gt; if city="Yes" and country="Yes"&lt;BR /&gt; then Tour="Yes";&lt;BR /&gt; else Tour="No";&lt;BR /&gt; &lt;BR /&gt; if first.ID and last.ID&amp;nbsp;&lt;BR /&gt;or Tour="Yes" then output;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Dec 2016 15:16:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317325#M69465</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-12-07T15:16:38Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317485#M69524</link>
      <description>&lt;P&gt;Thank you for your prompt answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think I didn't explain what I want exactly.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To add some explanation,&lt;/P&gt;&lt;P&gt;At first, I would like to select by ID.&lt;/P&gt;&lt;P&gt;If the ID has Tour = 'Yes'(s), it should be selected regardless of repeated number. (So, there could be 2 observation for A)&lt;/P&gt;&lt;P&gt;If the ID doesn't have Tour = 'Yes', it should be presented as Tour = 'No' (I am not selecting Tour='Yes' only)&lt;/P&gt;&lt;P&gt;If the observation has Tour='Yes' and Tour='No', I just need Tour = 'Yes' only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Briefly speaking,&lt;/P&gt;&lt;P&gt;At least, per ID, there should be Tour = 'Yes' or Tour = 'No'. If it has Tour = 'Yes', I don't want the observation with Tour ='No'.&lt;/P&gt;&lt;P&gt;And, I should check the number of Tour ='Yes', so the observation with Tour='Yes' should be selected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate your help.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 03:22:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317485#M69524</guid>
      <dc:creator>Plessein</dc:creator>
      <dc:date>2016-12-08T03:22:02Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317486#M69525</link>
      <description>&lt;P&gt;Sorry. it was unneccessary two variables. I could made it one.&lt;/P&gt;&lt;P&gt;Let's say that there is only (City=Yes and Country=Yes) or (City=No and Country = No)&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 03:24:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317486#M69525</guid>
      <dc:creator>Plessein</dc:creator>
      <dc:date>2016-12-08T03:24:50Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317487#M69526</link>
      <description>&lt;P&gt;Thank you so much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is great!. It works perfectly. Very efficient!&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 03:29:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317487#M69526</guid>
      <dc:creator>Plessein</dc:creator>
      <dc:date>2016-12-08T03:29:56Z</dc:date>
    </item>
    <item>
      <title>Re: Repeated IF/THEN conditions. Can I have more efficient way?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317660#M69574</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/75229"&gt;@Plessein&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Sorry. it was unneccessary two variables. I could made it one.&lt;/P&gt;
&lt;P&gt;Let's say that there is only (City=Yes and Country=Yes) or (City=No and Country = No)&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And do what?&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 17:50:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Repeated-IF-THEN-conditions-Can-I-have-more-efficient-way/m-p/317660#M69574</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-12-08T17:50:51Z</dc:date>
    </item>
  </channel>
</rss>

