<?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: Data Selection in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/357173#M83831</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input Record_ID	Metric : $40.	Numerator	Denominator;
cards;
1	Insulin	1	1000
1	Anti-Coagulants	3	1000
2	Insulin	0	3000
3	Insulin	1	2000
2	Anti-Coagulants	2	1000
4	Anti-Coagulants	1	4000
1	Opioids	1	1000
2	Opioids	1	2000
3	Insulin	2	1000
;
run;
proc sql;
select *
 from have
   group by Record_ID
    having count(distinct Metric)=3 and sum(Numerator=0)=0;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 09 May 2017 13:29:55 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2017-05-09T13:29:55Z</dc:date>
    <item>
      <title>Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356946#M83754</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a dataset where I need to select a record if a record has data within all three metrics. &amp;nbsp;For example,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Record_ID&lt;/TD&gt;&lt;TD&gt;Metric&lt;/TD&gt;&lt;TD&gt;Numerator&lt;/TD&gt;&lt;TD&gt;Denominator&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Insulin&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Anti-Coagulants&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Insulin&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;3000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Insulin&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Anti-Coagulants&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Anti-Coagulants&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Opioids&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Opioids&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Insulin&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I only want to pull data that has a numerator for all three metrics (Insulin, Anti-Coagulants, and Opioids). &amp;nbsp;Although Record_ID 2 has a numerator in all three metrics, I do not want to pull it because it has a '0' for the Insulin metric. &amp;nbsp;Does anyone have a recommendation to selecting data this way? &amp;nbsp;The end table that I want would be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Record_ID&lt;/TD&gt;&lt;TD&gt;Metric&lt;/TD&gt;&lt;TD&gt;Numerator&lt;/TD&gt;&lt;TD&gt;Denominator&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Insulin&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Anti-Coagulants&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Opioids&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any assistance would be greatly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:13:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356946#M83754</guid>
      <dc:creator>thb</dc:creator>
      <dc:date>2017-05-08T17:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356948#M83755</link>
      <description>&lt;P&gt;Will any of your Record_Id &lt;STRONG&gt;ever&lt;/STRONG&gt; have more than 3 records? Fewer than 3 records? If so what is the selection rule(s)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If they have exactly 3 records will they always be Insulin, Anti-coagulants and Opiods?&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:20:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356948#M83755</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-05-08T17:20:16Z</dc:date>
    </item>
    <item>
      <title>Re: Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356950#M83756</link>
      <description>&lt;P&gt;Yes, they'll have multiple records by month from 2014 to present. &amp;nbsp;The criteria for selection is that they need to have records for these three metrics to be counted. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:22:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356950#M83756</guid>
      <dc:creator>thb</dc:creator>
      <dc:date>2017-05-08T17:22:16Z</dc:date>
    </item>
    <item>
      <title>Re: Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356953#M83757</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you never have more than one record for a given id/metric then sort by id and metric,&amp;nbsp;then count metrics (with numberator&amp;gt;0)&amp;nbsp;within each id:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Editted change:&amp;nbsp; (Looking at Art's solution revealed a flaw in my suggest - here's the revised response);&lt;/P&gt;
&lt;P&gt;proc sort data=have&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;(where=(numerator&amp;gt;0)) out=need&lt;/STRONG&gt;&lt;/EM&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; by id metric;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; do n_metric=1 by 1 until (last.id);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; set &lt;EM&gt;&lt;STRONG&gt;need&lt;/STRONG&gt;&lt;/EM&gt; &lt;STRIKE&gt;have (where=(numerator&amp;gt;0))&lt;/STRIKE&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by id;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; do until (last.id);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &lt;EM&gt;&lt;STRONG&gt;need&lt;/STRONG&gt;&lt;/EM&gt; &lt;STRIKE&gt;have&lt;/STRIKE&gt;;&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 n_metric=3 then output;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:37:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356953#M83757</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-05-08T17:37:07Z</dc:date>
    </item>
    <item>
      <title>Re: Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356955#M83758</link>
      <description>&lt;P&gt;In that case I'd use a DOW loop to test whether each metric met the condition, e.g.:&lt;/P&gt;
&lt;PRE&gt;proc sort data=have out=want;
  by Record_ID Metric;
run;

data want (drop=m1-m3);
  do until (last.Record_ID);
    set want;
    by Record_ID;
    if Metric eq 'Insulin' and Numerator gt 0 then m1=1;
    else if Metric eq 'Anti-Coagulants' and Numerator gt 0 then m2=1;
    else if Metric eq 'Opioids' and Numerator gt 0 then m3=1;
  end;
  do until (last.Record_ID);
    set want;
    by Record_ID;
    if sum(of m1-m3) eq 3 then output;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:33:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/356955#M83758</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-08T17:33:44Z</dc:date>
    </item>
    <item>
      <title>Re: Data Selection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/357173#M83831</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input Record_ID	Metric : $40.	Numerator	Denominator;
cards;
1	Insulin	1	1000
1	Anti-Coagulants	3	1000
2	Insulin	0	3000
3	Insulin	1	2000
2	Anti-Coagulants	2	1000
4	Anti-Coagulants	1	4000
1	Opioids	1	1000
2	Opioids	1	2000
3	Insulin	2	1000
;
run;
proc sql;
select *
 from have
   group by Record_ID
    having count(distinct Metric)=3 and sum(Numerator=0)=0;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 May 2017 13:29:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Selection/m-p/357173#M83831</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-05-09T13:29:55Z</dc:date>
    </item>
  </channel>
</rss>

