<?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: assigning code based on score in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736442#M229416</link>
    <description>Meaning if there's a value in var "A" there should be no tag and code assigned.</description>
    <pubDate>Thu, 22 Apr 2021 15:36:37 GMT</pubDate>
    <dc:creator>kpdoe</dc:creator>
    <dc:date>2021-04-22T15:36:37Z</dc:date>
    <item>
      <title>assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736437#M229414</link>
      <description>&lt;P&gt;Hello I need help with assigning tag for high score by variable "A" taking a priority regardless of the high score in var "B". With below code, I am not getting the correct output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a data: testa&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;secnd_ID&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34557&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00514&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;23456&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.00449&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34545&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00384&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Output with code below:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;secnd_ID&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;TD&gt;Cnt&lt;/TD&gt;&lt;TD&gt;Tag&lt;/TD&gt;&lt;TD&gt;Code&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34557&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00514&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;23456&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.00449&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34545&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00384&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired output:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;secnd_ID&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;TD&gt;Cnt&lt;/TD&gt;&lt;TD&gt;Tag&lt;/TD&gt;&lt;TD&gt;Code&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34557&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00514&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;23456&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.00449&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12345&lt;/TD&gt;&lt;TD&gt;34545&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.00384&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Code:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=testa;
by ID descending score descending A;
run;


data test_keep
 set testa;
by id;
retain cnt;
if first.id = 1 then cnt = 0;
cnt + 1;
if cnt &amp;gt; 1 then tag = 'D'
if tag = 'D' then code = 'Delete';
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Apr 2021 15:26:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736437#M229414</guid>
      <dc:creator>kpdoe</dc:creator>
      <dc:date>2021-04-22T15:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736440#M229415</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/146786"&gt;@kpdoe&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello I need help with assigning tag for high score by variable "A" taking a priority regardless of the high score in var "B". With below code, I am not getting the correct output.&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 code does nothing with the value of variable A so how is a "high score by variable A" determined or evaluated?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What exactly does "taking a priority" mean in this context?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Apr 2021 15:31:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736440#M229415</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-04-22T15:31:46Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736442#M229416</link>
      <description>Meaning if there's a value in var "A" there should be no tag and code assigned.</description>
      <pubDate>Thu, 22 Apr 2021 15:36:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736442#M229416</guid>
      <dc:creator>kpdoe</dc:creator>
      <dc:date>2021-04-22T15:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736473#M229426</link>
      <description>&lt;P&gt;It sounds like you're close.&amp;nbsp; Try replacing this statement:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;set testa;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Instead, use this and see if it does what you need:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;set testa (where=(A &amp;gt; .)) testa (where=(A=.));&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Apr 2021 17:22:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736473#M229426</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2021-04-22T17:22:02Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736489#M229435</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt;that worked but, I still want a record with the highest score. For the above scenario the code worked but did not satisfy this one.&lt;/P&gt;&lt;P&gt;Output with your code below:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;secnd_ID&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;TD&gt;Cnt&lt;/TD&gt;&lt;TD&gt;Tag&lt;/TD&gt;&lt;TD&gt;Code&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;35456&lt;/TD&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.01567&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;37459&lt;/TD&gt;&lt;TD&gt;004&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.04237&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;75456&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;0.00958&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired output: I need the output with the higher score&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;secnd_ID&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;TD&gt;Cnt&lt;/TD&gt;&lt;TD&gt;Tag&lt;/TD&gt;&lt;TD&gt;Code&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;37459&lt;/TD&gt;&lt;TD&gt;004&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.04237&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;35456&lt;/TD&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0.01567&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;67890&lt;/TD&gt;&lt;TD&gt;75456&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;0.00958&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 22 Apr 2021 18:21:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736489#M229435</guid>
      <dc:creator>kpdoe</dc:creator>
      <dc:date>2021-04-22T18:21:49Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736498#M229442</link>
      <description>&lt;P&gt;The code looks OK.&amp;nbsp; Show the log of the program that produced the incorrect results.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Apr 2021 19:20:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736498#M229442</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2021-04-22T19:20:45Z</dc:date>
    </item>
    <item>
      <title>Re: assigning code based on score</title>
      <link>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736501#M229443</link>
      <description>&lt;P&gt;This works with your example:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input ID secnd_ID A B Score;
cards;
12345 34557 . 1 0.00514
12345 23456 3 . 0.00449
12345 34545 . 1 0.00384
;

proc sort data=have ;
  by id descending score ;
run;

data want;
  set have(where=(not missing(a))) have(where=(missing(a)));
  by id;
  cnt+1;
  if first.id then cnt=1;
  else do;
    tag='D'; code='Delete';
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you want it to print in the same order then re-sort it.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=want ;
  by id descending score ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs      ID     secnd_ID    A    B     Score    cnt    tag     code

 1     12345      34557     .    1    .00514     2      D     Delete
 2     12345      23456     3    .    .00449     1
 3     12345      34545     .    1    .00384     3      D     Delete

&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Apr 2021 19:49:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/assigning-code-based-on-score/m-p/736501#M229443</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-04-22T19:49:34Z</dc:date>
    </item>
  </channel>
</rss>

