<?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 select/exclude observations based on criteria in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152937#M40219</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;s I think this is as much a logic question as SAS, but suppose input data looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pat_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pat_stat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Charge_code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Discharge&lt;/P&gt;&lt;P&gt;AA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 11&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; 9/22/2012&lt;/P&gt;&lt;P&gt;BB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 11&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; 5/11/2012&lt;/P&gt;&lt;P&gt;CC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 55&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; 12/13/2012&lt;/P&gt;&lt;P&gt;DD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&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; 11&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; 6/4/2012&lt;/P&gt;&lt;P&gt;EE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 55&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; 12/3/2012&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The observations where pat_stat = 30, where charge_code &amp;lt;&amp;gt; 11 and Discharge after 12/1/2012 are to be selected.&amp;nbsp; However, an observation could have one, two or all three of those criteria (Pat_ID EE).&amp;nbsp; What is the best way to find the exact records that have these criteria but also determine if they overlap?&amp;nbsp; Such as, datasets that include ones with just pat_stat = 30, charge_code &amp;lt;&amp;gt; 11, or discharge &amp;gt; 12/1/2012 but also can pinpoint which ones have two of those criteria or three. For example, if I specify if charge_code &amp;lt;&amp;gt; 11, EE is included but it also has pat_stat = 30.&amp;nbsp; But I want to select it such that I can tell EE also has pat_stat = 30 and it has multiple criteria.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Feb 2015 14:59:37 GMT</pubDate>
    <dc:creator>pinkyc</dc:creator>
    <dc:date>2015-02-04T14:59:37Z</dc:date>
    <item>
      <title>select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152937#M40219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;s I think this is as much a logic question as SAS, but suppose input data looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pat_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pat_stat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Charge_code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Discharge&lt;/P&gt;&lt;P&gt;AA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 11&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; 9/22/2012&lt;/P&gt;&lt;P&gt;BB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 11&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; 5/11/2012&lt;/P&gt;&lt;P&gt;CC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 55&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; 12/13/2012&lt;/P&gt;&lt;P&gt;DD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&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; 11&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; 6/4/2012&lt;/P&gt;&lt;P&gt;EE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 55&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; 12/3/2012&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The observations where pat_stat = 30, where charge_code &amp;lt;&amp;gt; 11 and Discharge after 12/1/2012 are to be selected.&amp;nbsp; However, an observation could have one, two or all three of those criteria (Pat_ID EE).&amp;nbsp; What is the best way to find the exact records that have these criteria but also determine if they overlap?&amp;nbsp; Such as, datasets that include ones with just pat_stat = 30, charge_code &amp;lt;&amp;gt; 11, or discharge &amp;gt; 12/1/2012 but also can pinpoint which ones have two of those criteria or three. For example, if I specify if charge_code &amp;lt;&amp;gt; 11, EE is included but it also has pat_stat = 30.&amp;nbsp; But I want to select it such that I can tell EE also has pat_stat = 30 and it has multiple criteria.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 14:59:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152937#M40219</guid>
      <dc:creator>pinkyc</dc:creator>
      <dc:date>2015-02-04T14:59:37Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152938#M40220</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, not following your logic, could you provide an example required output?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 15:16:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152938#M40220</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-02-04T15:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152939#M40221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sometimes this could depend on what you are doing next. The basic bit will be understanding the logical OR and AND constructions.&lt;/P&gt;&lt;P&gt;When working with dates though it really helps if your dates are actually SAS date values and not some text value. Otherwise comparisons get real ugly.&lt;/P&gt;&lt;P&gt;If you want all of a condition to be true use AND. You can select using WHERE statements in most procedures or a WHERE dataset option.&lt;/P&gt;&lt;P&gt;For example to print selected records:&lt;/P&gt;&lt;P&gt;proc print data=have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where pat_stat=30 AND charge_code NE 11 and discharge &amp;gt; '01DEC2012'd; /*NOTE the SAS construct for a date literal. Also if the charge_code is a character variable then in needs quotes NE '11'. Comparisons with text values other than = also have some tricks as '3' is likely to be treated as greater than '11' but '100' wouldn't.*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* this would print just the records where all 3 conditions are true I use NE for "not equal" as there a multiple character options but this is easier for me to type*/&lt;/P&gt;&lt;P&gt;proc print data=have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where pat_stat=30 OR charge_code NE 11 OR discharge &amp;gt; '01DEC2012'd; /* would print the records where any of the conditions is true*/&lt;/P&gt;&lt;P&gt;You can group using () to control order of comparison&lt;/P&gt;&lt;P&gt;proc print data=have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where (pat_stat=30 OR charge_code NE 11) AND discharge &amp;gt; '01DEC2012'd; /* would print the records where either of the first two conditions is true and the 3rd must be true.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also with SAS there is a comparison that lets you select a specific list for comparison(values not variables)&lt;/P&gt;&lt;P&gt;where pat_stat in (30, 10)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The logic for negating is a bit trickier and a good logic reference is in order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 15:34:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152939#M40221</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-02-04T15:34:12Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152940#M40222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ballard got the gist of what I was aiming for, though I was hoping there'd be an easier way around the logic but I suppose there isn't a shortcut.&amp;nbsp; But to give an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dataset pat_stat = 30 ONLY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pat_ID&lt;/P&gt;&lt;P&gt;BB&lt;/P&gt;&lt;P&gt;EE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dataset charge_code &amp;lt;&amp;gt; 11 ONLY&lt;/P&gt;&lt;P&gt;Pat_ID&lt;/P&gt;&lt;P&gt;CC&lt;/P&gt;&lt;P&gt;EE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dataset Pat_stat = 30 AND charge_code &amp;lt;&amp;gt; 11&lt;/P&gt;&lt;P&gt;Pat_ID&lt;/P&gt;&lt;P&gt;EE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically, EE would appear in each three of these specifications, but it's redundant in the pat_stat = 30 only and charge_code &amp;lt;&amp;gt; 11 only outputs.&amp;nbsp; Since there are quite a few observations, I suppose I'll just have to do successive and/or statements to narrow it down.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 15:43:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152940#M40222</guid>
      <dc:creator>pinkyc</dc:creator>
      <dc:date>2015-02-04T15:43:20Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152941#M40223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As I mentioned, the approach could depend on what you are doing next. How are you going to use the inclusion/exclusion?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another approach is to create a text flag variable that would contain a series of 0 and 1 to summarize the conditions met.&lt;/P&gt;&lt;P&gt;Something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;flag = cats( (pat_stat=30), (charge_code NE 11),(discharge &amp;gt; '01DEC2012'd) );&lt;/P&gt;&lt;P&gt;if all are true then Flag looks like 111, none 000, only the first true 100. You could then run frequencies on Flag for distributions and counts, use the Flag to select subsets such as:&lt;/P&gt;&lt;P&gt;where flag in ('010','011') .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 16:00:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152941#M40223</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-02-04T16:00:14Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152942#M40224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, thank you I was just clarifying my question to answer RW9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For my purposes, nothing further with data analysis but creating a report where I can quantify how many have 1, 2 or all 3 criteria.&amp;nbsp; Right now I can only say x have 1, y have 2 and z have 3 without being able to actually give detail on how many have 1 or 2 or 3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The flag approach is just what I was looking for, I will try it out thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 16:41:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152942#M40224</guid>
      <dc:creator>pinkyc</dc:creator>
      <dc:date>2015-02-04T16:41:58Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152943#M40225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was wondering if you could give an example on how to actually set/call create the flag variable for those conditions?&amp;nbsp; I did use the snippet you gave but for some reason I don't think I'm using it correctly.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 19:01:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152943#M40225</guid>
      <dc:creator>pinkyc</dc:creator>
      <dc:date>2015-02-04T19:01:50Z</dc:date>
    </item>
    <item>
      <title>Re: select/exclude observations based on criteria</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152944#M40226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Code to read the data, create the flag and then print the results:&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;informat discharge mmddyy10.;&lt;BR /&gt;input Pat_ID&amp;nbsp; $&amp;nbsp;&amp;nbsp; Pat_stat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Charge_code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Discharge ;&lt;BR /&gt;flag = cats( (pat_stat=30), (charge_code NE 11),(discharge &amp;gt; '01DEC2012'd) );&lt;BR /&gt;format discharge mmddyy10.;&lt;BR /&gt;datalines;&lt;BR /&gt;AA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 11&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; 9/22/2012&lt;BR /&gt;BB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 11&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; 5/11/2012&lt;BR /&gt;CC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 55&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; 12/13/2012&lt;BR /&gt;DD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&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; 11&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; 6/4/2012&lt;BR /&gt;EE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&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; 55&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; 12/3/2012&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc print data=have;&lt;BR /&gt;var Pat_ID&amp;nbsp; Pat_stat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Charge_code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Discharge&amp;nbsp;&amp;nbsp; flag;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Results: (minus the column headers cut by the forum)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE cellpadding="3" cellspacing="0" class="table" summary="Procedure Print: Data Set USER.HAVE"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH class="l m rowheader" scope="row"&gt;1&lt;/TH&gt;&lt;TD class="l data"&gt;AA&lt;/TD&gt;&lt;TD class="r data"&gt;10&lt;/TD&gt;&lt;TD class="r data"&gt;11&lt;/TD&gt;&lt;TD class="r data"&gt;09/22/2012&lt;/TD&gt;&lt;TD class="l data"&gt;000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="l m rowheader" scope="row"&gt;2&lt;/TH&gt;&lt;TD class="l data"&gt;BB&lt;/TD&gt;&lt;TD class="r data"&gt;30&lt;/TD&gt;&lt;TD class="r data"&gt;11&lt;/TD&gt;&lt;TD class="r data"&gt;05/11/2012&lt;/TD&gt;&lt;TD class="l data"&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="l m rowheader" scope="row"&gt;3&lt;/TH&gt;&lt;TD class="l data"&gt;CC&lt;/TD&gt;&lt;TD class="r data"&gt;10&lt;/TD&gt;&lt;TD class="r data"&gt;55&lt;/TD&gt;&lt;TD class="r data"&gt;12/13/2012&lt;/TD&gt;&lt;TD class="l data"&gt;011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="l m rowheader" scope="row"&gt;4&lt;/TH&gt;&lt;TD class="l data"&gt;DD&lt;/TD&gt;&lt;TD class="r data"&gt;20&lt;/TD&gt;&lt;TD class="r data"&gt;11&lt;/TD&gt;&lt;TD class="r data"&gt;06/04/2012&lt;/TD&gt;&lt;TD class="l data"&gt;000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TH class="l m rowheader" scope="row"&gt;5&lt;/TH&gt;&lt;TD class="l data"&gt;EE&lt;/TD&gt;&lt;TD class="r data"&gt;30&lt;/TD&gt;&lt;TD class="r data"&gt;55&lt;/TD&gt;&lt;TD class="r data"&gt;12/03/2012&lt;/TD&gt;&lt;TD class="l data"&gt;111&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;So the flag on the first row: Pat_stat is not 30 so the first position of the flag is 0 for false&lt;/P&gt;&lt;P&gt;charge_code IS 11 (not &amp;lt;&amp;gt;) so is also 0 and the date is not greate than 12/01/2012 so 0.&lt;/P&gt;&lt;P&gt;In the second row the Pat_stat is 30 so the first position 1 for true and the remainder are 0 as both are false&lt;/P&gt;&lt;P&gt;In the third row charge_code &amp;lt;&amp;gt; 11 so the 2nd position is 1 and the date is larger so it is true.&lt;/P&gt;&lt;P&gt;This type of flag requires that you constantly be aware of the meaning for each position.&lt;/P&gt;&lt;P&gt;An additional exercise for the interested reader is to build a custom format for each value of flag and then use that format for display to describe what is going one.&lt;/P&gt;&lt;P&gt;An advantage AND weakness to this approach: You can have a lot of comparisons represented, 2^n where n is the number of comparisons. So you can build something hard to interpret quickly. Also if you don't specify a length for the flag variable you'll get a 200 character default.&lt;/P&gt;&lt;P&gt;A third approach would be three separate flags coded 0/1.Proc summary with the flags as class variables could get you a count of the combinations of 1,2 or 3 taken at a time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Feb 2015 20:21:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/select-exclude-observations-based-on-criteria/m-p/152944#M40226</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-02-04T20:21:42Z</dc:date>
    </item>
  </channel>
</rss>

