<?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: Find the dividing line(s) in a continuous variable based on rank score in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392459#M94438</link>
    <description>&lt;P&gt;Your last post seems contradictory with what you first explained where the maximum value was taken for rank 0 and the minimum value for rank 1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is a program that computes the value you indicate in your example :&lt;/P&gt;
&lt;PRE&gt;data want;
	set have;
	by Rank;
	retain minC maxC prevMin prevMax;

	if first.Rank then do;
		maxC=Continuous;
		minC=Continuous;
	end;
	else do;
		maxC=max(Continuous, maxC);
		minC=min(Continuous, minC);
	end;

	if last.Rank then do;
		if Rank&amp;gt;0 then do;
			CD=(max(minC,prevMin)+min(maxC,prevMax))/2;
			output;
		end;
		prevMax=maxC;
		prevMin=minC;
	end;
run;
&lt;/PRE&gt;</description>
    <pubDate>Fri, 01 Sep 2017 09:07:43 GMT</pubDate>
    <dc:creator>gamotte</dc:creator>
    <dc:date>2017-09-01T09:07:43Z</dc:date>
    <item>
      <title>Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392098#M94280</link>
      <description>&lt;P&gt;Please see the following partial data set:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Continuous      Rank
-2.28675         0
-2.21883         0
-1.96124         0
-1.81953         0
-1.28607         0
-0.65065         0
-0.37568         0
-0.33465         0
-0.21190         0
-0.14975         0
0.05879          1
0.10336          1
0.17450          1
0.46424          1
0.46587          1
0.48881          1
0.87138          1
0.91401          1
1.18948          1
1.26697          1
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;I'm attempting to calculate the diving line(s) of "Continuous" based on the different rank values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the above case, I could use:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(Lowest 1 Value - Highest 0 Value) / 2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let's tentatively call the value:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CD_0_1 (CD standing for "Continuous Division")&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not shown would be:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CD_1_2&lt;BR /&gt;CD_2_3&lt;BR /&gt;CD_3_4&lt;BR /&gt;etc,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can anyone here suggest a way of doing this using SAS.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thoughts and help greatly appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nicholas Kormanik&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Aug 2017 06:24:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392098#M94280</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2017-08-31T06:24:01Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392159#M94318</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;could you please provide some more information:&lt;/P&gt;&lt;P&gt;- what's a 'diving line'?&lt;/P&gt;&lt;P&gt;- and how should the result look like?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Aug 2017 12:02:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392159#M94318</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2017-08-31T12:02:06Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392202#M94339</link>
      <description>&lt;P&gt;In the above case:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(.05879 + (-.14975)) / 2 =&amp;nbsp;-0.04548&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thus,&amp;nbsp;&lt;SPAN&gt;CD_0_1 =&amp;nbsp;-0.04548&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;That value might be thought of as the 'dividing line' separating the "Continuous Variable" based on the Rank Score.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This is one value of many more following.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In other words:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;CD_0_1 =&amp;nbsp;-0.04548&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;CD_1_2 =&lt;BR /&gt;CD_2_3 =&lt;BR /&gt;CD_3_4 =&lt;BR /&gt;etc.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Aug 2017 13:54:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392202#M94339</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2017-08-31T13:54:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392229#M94349</link>
      <description>&lt;P&gt;quickest way - calculate summary statistics for each group first.&lt;/P&gt;
&lt;P&gt;Then do group calcuations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/22691"&gt;@NKormanik&lt;/a&gt;&amp;nbsp;can you show the full expected output for the provided sample data.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Aug 2017 14:44:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392229#M94349</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-08-31T14:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392432#M94421</link>
      <description>&lt;P&gt;Another possible solution might be to simply use the highest "Continuous" from each "Rank".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This, as opposed to trying to find an average in-between, as described above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, what the new idea would require is filtering a dataset, only keeping the highest for any rank.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the above case:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;Continuous      &lt;SPAN class="token procnames"&gt;Rank&lt;/SPAN&gt;

&lt;SPAN class="token number"&gt;-0.14975&lt;/SPAN&gt;         &lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1.26697&lt;/SPAN&gt;          &lt;SPAN class="token number"&gt;1&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;The new dataset, after filtering, would hold the desired values (pretty closely, at least).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, the question then becomes, how to filter, leaving only the highest "Continuous" for each ranking value??&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help greatly appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Sep 2017 05:10:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392432#M94421</guid>
      <dc:creator>NKormanik</dc:creator>
      <dc:date>2017-09-01T05:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392457#M94437</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming your dataset is sorted by Rank, Continuous :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
    set have;
    by Rank;
    if last.Rank;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Or, with a proc sql :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
    CREATE TABLE want AS
    SELECT DISTINCT max(Continuous) AS Continuous, Rank
    FROM have
    GROUP BY Rank
    ORDER BY Rank;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 01 Sep 2017 08:40:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392457#M94437</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-09-01T08:40:06Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392459#M94438</link>
      <description>&lt;P&gt;Your last post seems contradictory with what you first explained where the maximum value was taken for rank 0 and the minimum value for rank 1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is a program that computes the value you indicate in your example :&lt;/P&gt;
&lt;PRE&gt;data want;
	set have;
	by Rank;
	retain minC maxC prevMin prevMax;

	if first.Rank then do;
		maxC=Continuous;
		minC=Continuous;
	end;
	else do;
		maxC=max(Continuous, maxC);
		minC=min(Continuous, minC);
	end;

	if last.Rank then do;
		if Rank&amp;gt;0 then do;
			CD=(max(minC,prevMin)+min(maxC,prevMax))/2;
			output;
		end;
		prevMax=maxC;
		prevMin=minC;
	end;
run;
&lt;/PRE&gt;</description>
      <pubDate>Fri, 01 Sep 2017 09:07:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392459#M94438</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-09-01T09:07:43Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392462#M94440</link>
      <description>&lt;P&gt;If the dataset is sorted by Rank, Continuous, the program can be simplified :&lt;/P&gt;
&lt;PRE&gt;data want;
	set have;
	by Rank;
	keep Continuous Rank CD;
	retain minC maxC prevMin prevMax;

	if first.Rank then do;
		minC=Continuous;
	end;

	if last.Rank then do;
		if Rank&amp;gt;0 then do;
			CD=(max(minC,prevMin)+min(Continuous,prevMax))/2;
			output;
		end;
		prevMax=Continuous;
		prevMin=minC;
	end;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Sep 2017 09:23:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392462#M94440</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-09-01T09:23:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find the dividing line(s) in a continuous variable based on rank score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392579#M94495</link>
      <description>&lt;P&gt;I'd use PROC MEANS to compute MIN and MAX, but there are many other ways:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
proc means data=a min max;
class rank;
var continuous;
output out=out(where=(RANK^=.)) min=min max=max;
run;

data lines;
set out;
line = (min + lag(max)) / 2;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 01 Sep 2017 15:36:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-dividing-line-s-in-a-continuous-variable-based-on-rank/m-p/392579#M94495</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2017-09-01T15:36:07Z</dc:date>
    </item>
  </channel>
</rss>

