<?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: Need to create flag for Top 5% members by Total Cost for every Employer group ID in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476070#M286060</link>
    <description>&lt;P&gt;You apparently want the top 5% within each employer_group_id, although your data display does not make that absolutely clear.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edited addition:&amp;nbsp; by "top 5%" I presume you mean top 5% of patients, not patients accounting for top 5% of total expenditures, is that correct?&amp;nbsp; If it's the latter then this same code could be tweaked to do what you want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your data appear to be already&amp;nbsp;sorted by descending total_cost within employer_group_id.&amp;nbsp; If so then this code would work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=_:);
  set have;
  by employer_group_id;
  _n+1;
  if first.employer_group_id then _n=1;

  if last.employer_group_id;
  _cutoff=ceil(.05*_n);
  flag=1;
  do _i=1 to _n;
    set have;
	if _i&amp;gt;_cutoff then flag=0;
    output;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can't test it because you have not provide data in a sas data step form.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code reads and counts records (variable _n) one-record-at-a-time until the last records for a given employer_group_id.&amp;nbsp; At that point it calculates the 5% cutoff, i.e. smallest integer greater than or equal to .05*_N, then re-reads the same records and assign values based on their sequential position within the group vs the cutoff.&lt;/P&gt;</description>
    <pubDate>Fri, 06 Jul 2018 16:55:00 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2018-07-06T16:55:00Z</dc:date>
    <item>
      <title>Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476052#M286053</link>
      <description>&lt;P&gt;I have about 4000 distinct Employer groups in my data set and i need a flag or something similar that gives me top 5% members by Total Cost for each employer Group ID. How do i do it in SAS?&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 15:43:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476052#M286053</guid>
      <dc:creator>ashwini2</dc:creator>
      <dc:date>2018-07-06T15:43:28Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476054#M286054</link>
      <description>&lt;P&gt;Summarize your data to find total cost and then use PROC RANK to get the top 5%.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/79978"&gt;@ashwini2&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I have about 4000 distinct Employer groups in my data set and i need a flag or something similar that gives me top 5% members by Total Cost for each employer Group ID. How do i do it in SAS?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 15:51:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476054#M286054</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-06T15:51:40Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476056#M286055</link>
      <description>&lt;P&gt;Thank you. But how would i create a distinct flag for every Employer ID? The flag should be something like 1(If member falls in the top 5% range) and 0, if not.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or if you know a better way to deal this, Please suggest.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 15:55:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476056#M286055</guid>
      <dc:creator>ashwini2</dc:creator>
      <dc:date>2018-07-06T15:55:49Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476057#M286056</link>
      <description>&lt;P&gt;You can achieve this in several ways. Please show us the sample data you have and how you want it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 15:59:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476057#M286056</guid>
      <dc:creator>SuryaKiran</dc:creator>
      <dc:date>2018-07-06T15:59:42Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476058#M286057</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/79978"&gt;@ashwini2&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thank you. But how would i create a distinct flag for every Employer ID? The flag should be something like 1(If member falls in the top 5% range) and 0, if not.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or if you know a better way to deal this, Please suggest.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Please provide sample data and an example of expected output if you want example code.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 16:05:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476058#M286057</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-06T16:05:44Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476061#M286058</link>
      <description>&lt;P&gt;Attaching sample data set. And flag is the variable i want to create. 1= For member who falls in top 5% by total cost bucket and 0= Not in the Top 5% bucket and i want to do this for every employer group.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 16:12:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476061#M286058</guid>
      <dc:creator>ashwini2</dc:creator>
      <dc:date>2018-07-06T16:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476068#M286059</link>
      <description>&lt;P&gt;1. Use PROC MEANS to get the total&lt;/P&gt;
&lt;P&gt;2. USE PROC RANK with GROUPS=20 to get 5 percentiles - if you have duplicates/ties double check PROC RANK options for handling ties.&lt;/P&gt;
&lt;P&gt;3. Merge back with original data to create your flag.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/79978"&gt;@ashwini2&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Attaching sample data set. And flag is the variable i want to create. 1= For member who falls in top 5% by total cost bucket and 0= Not in the Top 5% bucket and i want to do this for every employer group.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 16:47:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476068#M286059</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-06T16:47:55Z</dc:date>
    </item>
    <item>
      <title>Re: Need to create flag for Top 5% members by Total Cost for every Employer group ID</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476070#M286060</link>
      <description>&lt;P&gt;You apparently want the top 5% within each employer_group_id, although your data display does not make that absolutely clear.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edited addition:&amp;nbsp; by "top 5%" I presume you mean top 5% of patients, not patients accounting for top 5% of total expenditures, is that correct?&amp;nbsp; If it's the latter then this same code could be tweaked to do what you want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your data appear to be already&amp;nbsp;sorted by descending total_cost within employer_group_id.&amp;nbsp; If so then this code would work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=_:);
  set have;
  by employer_group_id;
  _n+1;
  if first.employer_group_id then _n=1;

  if last.employer_group_id;
  _cutoff=ceil(.05*_n);
  flag=1;
  do _i=1 to _n;
    set have;
	if _i&amp;gt;_cutoff then flag=0;
    output;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can't test it because you have not provide data in a sas data step form.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code reads and counts records (variable _n) one-record-at-a-time until the last records for a given employer_group_id.&amp;nbsp; At that point it calculates the 5% cutoff, i.e. smallest integer greater than or equal to .05*_N, then re-reads the same records and assign values based on their sequential position within the group vs the cutoff.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 16:55:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Need-to-create-flag-for-Top-5-members-by-Total-Cost-for-every/m-p/476070#M286060</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-07-06T16:55:00Z</dc:date>
    </item>
  </channel>
</rss>

