<?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: Evaluating groups of data by conditions in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559139#M156103</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/183090"&gt;@rlafond&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a data set setup like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-101&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For every combination of ID and Date, I have a variable number of Code values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For every combination of ID and Date, I need to review the list of Code values present to see if they satisfy a rule. A rule is whether two specific Code values are present for a combination of ID and Date. I have 37 rules total.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If a rule is satisfied, I need to write a new record for that ID and Date with the rule number. Multiple rules can be satisfied for each combination of ID and Date.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EXAMPLE:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Supposed one of my rules is the presence of&amp;nbsp;HCC-9 and HCC-36 = HCC-900.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the above table, when ID=100 and Date = 5/13/2019, this rule is satisfied. So my new data set should look like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-900&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-101&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I &lt;STRONG&gt;have not&lt;/STRONG&gt; written the rules table yet because I'm not sure what the best way is to compose it (wide? long?).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any thoughts? Not sure how to approach this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Your final decisions will likely have to be based on how you expect the data to actually be used.&lt;/P&gt;
&lt;P&gt;From your description I might think that a wide format, because you may end up with 37 variables with values of 1 for true and 0 for false but only one row per id/date combination.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It may be that since you are apparently going to be doing a lot of comparisons across values in rows as currently structured that an intermediate step may be to transpose your existing data so all of the codes are available on one row.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need to clarify what&lt;/P&gt;
&lt;P&gt;Supposed one of my rules is the presence of&amp;nbsp;HCC-9 and HCC-36 = HCC-900. means. I do not see any what that HCC-36 can equal HCC-900.&lt;/P&gt;
&lt;P&gt;If that is inserting a new row with a new code value I strongly suspect that the reason for that insertion has not be carefully thought out.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way I might approach this:&lt;/P&gt;
&lt;PRE&gt;data have;
input ID Date :mmddyy10. Code $;
format date mmddyy10.;
dummy=1;
datalines;
100 5/13/2019 HCC-5 
100 5/13/2019 HCC-9 
100 5/13/2019 HCC-36 
101 4/10/2019 HCC-4 
101 4/10/2019 HCC-101 
;
run;

proc transpose data=have out=trans;
by id date;
id code;
var dummy;
run;

data example;
   set trans;
   rule1 = hcc_9 and hcc_36;
run;&lt;/PRE&gt;
&lt;P&gt;The above sets the value of rule1 to 1 (true) when both hcc_9 and hcc_36 are equal to one. Which happens when the code is HCC-9 and HCC-36 in the by group.&lt;/P&gt;</description>
    <pubDate>Wed, 15 May 2019 19:58:28 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2019-05-15T19:58:28Z</dc:date>
    <item>
      <title>Evaluating groups of data by conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559075#M156086</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a data set setup like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-36&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;4/10/2019&lt;/TD&gt;&lt;TD&gt;HCC-4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;4/10/2019&lt;/TD&gt;&lt;TD&gt;HCC-101&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For every combination of ID and Date, I have a variable number of Code values.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For every combination of ID and Date, I need to review the list of Code values present to see if they satisfy a rule. A rule is whether two specific Code values are present for a combination of ID and Date. I have 37 rules total.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If a rule is satisfied, I need to write a new record for that ID and Date with the rule number. Multiple rules can be satisfied for each combination of ID and Date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EXAMPLE:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Supposed one of my rules is the presence of&amp;nbsp;HCC-9 and HCC-36 = HCC-900.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the above table, when ID=100 and Date = 5/13/2019, this rule is satisfied. So my new data set should look like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-36&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;5/13/2019&lt;/TD&gt;&lt;TD&gt;HCC-900&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;4/10/2019&lt;/TD&gt;&lt;TD&gt;HCC-4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;4/10/2019&lt;/TD&gt;&lt;TD&gt;HCC-101&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I &lt;STRONG&gt;have not&lt;/STRONG&gt; written the rules table yet because I'm not sure what the best way is to compose it (wide? long?).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts? Not sure how to approach this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 May 2019 17:23:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559075#M156086</guid>
      <dc:creator>rlafond</dc:creator>
      <dc:date>2019-05-15T17:23:59Z</dc:date>
    </item>
    <item>
      <title>Re: Evaluating groups of data by conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559137#M156101</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/183090"&gt;@rlafond&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You could write the codes of each BY group into a SAS hash object and at the end of each BY group go through the list of rules (stored in another hash object which receives its content from your rules table) and output the additional record(s) for each satisfied rule. Finally, clear the first hash object before processing the next BY group.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data rules;
input rule (code1 code2 codec) ($);
cards;
1 HCC-9 HCC-36 HCC-900
2 HCC-X HCC-Y  HCC-Z
;

data have;
input id $ date :mmddyy. code $;
format date mmddyy10.;
cards;
100 5/13/2019 HCC-5
100 5/13/2019 HCC-9
100 5/13/2019 HCC-36
101 4/10/2019 HCC-4
101 4/10/2019 HCC-101
101 4/11/2019 HCC-Y
101 4/11/2019 HCC-Y
101 4/11/2019 HCC-4
101 4/11/2019 HCC-101
102 4/11/2019 HCC-Y
102 4/11/2019 HCC-9
102 4/11/2019 HCC-Y
102 4/11/2019 HCC-4
102 4/11/2019 HCC-36
102 4/11/2019 HCC-X
;

data want(keep=id date code);
if _n_=1 then do;
  dcl hash h();
  h.definekey('code');
  h.definedone();
  dcl hash r(dataset:'rules', ordered:'y');
  r.definekey('rule');
  r.definedata('code1', 'code2', 'codec');
  r.definedone();
  dcl hiter ri('r');
  if 0 then set rules;
end;
do until(last.date);
  set have;
  by id date; /* add "notsorted" if data are only grouped */
  rc=h.add();
  output;
end;
do while(ri.next()=0);
  if h.check(key:code1)=0 &amp;amp; h.check(key:code2)=0 then do;
    code=codec;
    output;
  end;
end;
h.clear();
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 15 May 2019 19:47:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559137#M156101</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2019-05-15T19:47:45Z</dc:date>
    </item>
    <item>
      <title>Re: Evaluating groups of data by conditions</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559139#M156103</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/183090"&gt;@rlafond&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a data set setup like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-101&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For every combination of ID and Date, I have a variable number of Code values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For every combination of ID and Date, I need to review the list of Code values present to see if they satisfy a rule. A rule is whether two specific Code values are present for a combination of ID and Date. I have 37 rules total.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If a rule is satisfied, I need to write a new record for that ID and Date with the rule number. Multiple rules can be satisfied for each combination of ID and Date.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;EXAMPLE:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Supposed one of my rules is the presence of&amp;nbsp;HCC-9 and HCC-36 = HCC-900.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the above table, when ID=100 and Date = 5/13/2019, this rule is satisfied. So my new data set should look like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Code&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-9&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-36&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;5/13/2019&lt;/TD&gt;
&lt;TD&gt;HCC-900&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;101&lt;/TD&gt;
&lt;TD&gt;4/10/2019&lt;/TD&gt;
&lt;TD&gt;HCC-101&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I &lt;STRONG&gt;have not&lt;/STRONG&gt; written the rules table yet because I'm not sure what the best way is to compose it (wide? long?).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any thoughts? Not sure how to approach this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Your final decisions will likely have to be based on how you expect the data to actually be used.&lt;/P&gt;
&lt;P&gt;From your description I might think that a wide format, because you may end up with 37 variables with values of 1 for true and 0 for false but only one row per id/date combination.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It may be that since you are apparently going to be doing a lot of comparisons across values in rows as currently structured that an intermediate step may be to transpose your existing data so all of the codes are available on one row.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need to clarify what&lt;/P&gt;
&lt;P&gt;Supposed one of my rules is the presence of&amp;nbsp;HCC-9 and HCC-36 = HCC-900. means. I do not see any what that HCC-36 can equal HCC-900.&lt;/P&gt;
&lt;P&gt;If that is inserting a new row with a new code value I strongly suspect that the reason for that insertion has not be carefully thought out.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One way I might approach this:&lt;/P&gt;
&lt;PRE&gt;data have;
input ID Date :mmddyy10. Code $;
format date mmddyy10.;
dummy=1;
datalines;
100 5/13/2019 HCC-5 
100 5/13/2019 HCC-9 
100 5/13/2019 HCC-36 
101 4/10/2019 HCC-4 
101 4/10/2019 HCC-101 
;
run;

proc transpose data=have out=trans;
by id date;
id code;
var dummy;
run;

data example;
   set trans;
   rule1 = hcc_9 and hcc_36;
run;&lt;/PRE&gt;
&lt;P&gt;The above sets the value of rule1 to 1 (true) when both hcc_9 and hcc_36 are equal to one. Which happens when the code is HCC-9 and HCC-36 in the by group.&lt;/P&gt;</description>
      <pubDate>Wed, 15 May 2019 19:58:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Evaluating-groups-of-data-by-conditions/m-p/559139#M156103</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-05-15T19:58:28Z</dc:date>
    </item>
  </channel>
</rss>

