<?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: proc sort - noduprec vs nodupkey in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639154#M190079</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an interesting paper about this topic:&amp;nbsp;&lt;A href="https://support.sas.com/resources/papers/proceedings/proceedings/sugi30/037-30.pdf" target="_blank"&gt;https://support.sas.com/resources/papers/proceedings/proceedings/sugi30/037-30.pdf&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="page" title="Page 1"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;SPAN&gt;With the NODUPKEY option, PROC SORT is comparing all &lt;/SPAN&gt;&lt;SPAN&gt;BY &lt;/SPAN&gt;&lt;SPAN&gt;variable values while the NODUPREC option compares &lt;/SPAN&gt;&lt;SPAN&gt;all &lt;/SPAN&gt;&lt;SPAN&gt;the variables in the data set that is being sorted.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;An easy way to remember the difference between these options is to keep in mind the word “key” in NODUPKEY.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;Kind regards,&lt;/P&gt;</description>
    <pubDate>Sat, 11 Apr 2020 15:31:28 GMT</pubDate>
    <dc:creator>ed_sas_member</dc:creator>
    <dc:date>2020-04-11T15:31:28Z</dc:date>
    <item>
      <title>proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639152#M190078</link>
      <description>&lt;PRE&gt;I have a dataset (dr_codes with 9037 records and 9 variables) - I ran the &lt;BR /&gt;following 2 proc sort and the results were different. I don't understand why &lt;BR /&gt;the results are different.  I know that noduprec removes duplicates by all&lt;BR /&gt;variables in the dataset but I am only reading in 1 variable and therefore&lt;BR /&gt;believe it should behave like a nodupkey. I have attached a log.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;1st - output dataset has 9037 records and 1 variable - 0 duplicate observations deleted&lt;BR /&gt; proc sort data=dr_codes(keep=dr_id) out=dr_codes_noduprec noduprec;&lt;BR /&gt;   by dr_id;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;2nd - output dataset has 8719 records and 1 variable - 318 duplicated key values deleted&lt;BR /&gt;proc sort data=dr_codes(keep=dr_id) out=dr_codes_nodupkey nodupkey;&lt;BR /&gt;   by dr_id;&lt;BR /&gt;run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Apr 2020 15:19:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639152#M190078</guid>
      <dc:creator>Julie4435637</dc:creator>
      <dc:date>2020-04-11T15:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639154#M190079</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an interesting paper about this topic:&amp;nbsp;&lt;A href="https://support.sas.com/resources/papers/proceedings/proceedings/sugi30/037-30.pdf" target="_blank"&gt;https://support.sas.com/resources/papers/proceedings/proceedings/sugi30/037-30.pdf&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="page" title="Page 1"&gt;
&lt;DIV class="section"&gt;
&lt;DIV class="layoutArea"&gt;
&lt;DIV class="column"&gt;
&lt;P&gt;&lt;SPAN&gt;With the NODUPKEY option, PROC SORT is comparing all &lt;/SPAN&gt;&lt;SPAN&gt;BY &lt;/SPAN&gt;&lt;SPAN&gt;variable values while the NODUPREC option compares &lt;/SPAN&gt;&lt;SPAN&gt;all &lt;/SPAN&gt;&lt;SPAN&gt;the variables in the data set that is being sorted.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;An easy way to remember the difference between these options is to keep in mind the word “key” in NODUPKEY.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;Kind regards,&lt;/P&gt;</description>
      <pubDate>Sat, 11 Apr 2020 15:31:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639154#M190079</guid>
      <dc:creator>ed_sas_member</dc:creator>
      <dc:date>2020-04-11T15:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639239#M190110</link>
      <description>&lt;P&gt;Also be mindful that NODUPREC compares *consecutive* records. You may well end up with duplicates if the identical records are not consecutive.&lt;/P&gt;
&lt;P&gt;In this case, it's better to use&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; by _ALL_;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to ensure the deduplication is effected.&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 00:53:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639239#M190110</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-12T00:53:30Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639247#M190118</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;: Congratulations! You did what I've been trying to do unsuccessfully for over 46 years .. find a bug in SAS that can't be brushed off as being a feature.&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/4"&gt;@ChrisHemedinger&lt;/a&gt;&amp;nbsp;: I can't submit anything to tech support, so I'd appreciate your doing the honors.&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/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;: I bet your dr_id field is a character (rather than numeric) field. I totally agree with you that noduprec and nodupkey should have given you identical results.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an example, like yours I presume, where they don't behave as expected:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input id $ x;
  cards;
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
;
run;

proc sort data=have out=nodup noduprec;
  by id;
run;

proc sort data=have out=nodupkey nodupkey;
  by id;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 01:49:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639247#M190118</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2020-04-12T01:49:03Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639249#M190120</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt; I am confused.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. I don't see how your 2 sorts should output the same result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Option NODUPREC needs consecutive record to work properly.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; So you need to use: &amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;by ID X;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&amp;nbsp; or&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;by ID _ALL_;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. Lucky you. I seem to find defect after defect, month after month, year after year. Suffering &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11650"&gt;@SimonDawson&lt;/a&gt; is often at the receiving end. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 03:05:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639249#M190120</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-12T03:05:33Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639250#M190121</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4"&gt;@ChrisHemedinger&lt;/a&gt;&amp;nbsp; : First, my apologies, my example was bad.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I may be mistaken but, I think that the order of concern (for nodup (noduprec) is dependent upon the order AFTER the sort .. not the one before the sort.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was also wrong regarding that the difference was between character and numeric by variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem is simply that if a file has more than one variable, and a keep option is used to only include the by variable, nodup (noduprec) performs differently than nodupkey .. when it shouldn't.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;e.g.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have_w_char_id;
  input id $;
  cards;
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
;
run;

proc sort data=have_w_char_id (keep=id) out=c_id_nodup noduprec;
  by id;
run;

proc sort data=have_w_char_id (keep=id) out=c_id_nodupkey nodupkey;
  by id;
run;

data have_w_num_id;
  input id;
  cards;
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
1
2
3
4
5
6
7
;
run;

proc sort data=have_w_num_id (keep=id) out=n_id_nodup noduprec;
  by id;
run;

proc sort data=have_w_num_id (keep=id) out=n_id_nodupkey nodupkey;
  by id;
run;

data have_w_char_id2;
  input id $ x;
  cards;
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
;
run;

proc sort data=have_w_char_id2 (keep=id) out=c_id_nodup2 noduprec;
  by id;
run;

proc sort data=have_w_char_id2 (keep=id) out=c_id_nodupkey2 nodupkey;
  by id;
run;

data have_w_num_id2;
  input id x;
  cards;
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
1 7
2 6
3 5
4 4
5 3
6 2
7 1
;
run;

proc sort data=have_w_num_id2 (keep=id) out=n_id_nodup2 noduprec;
  by id;
run;

proc sort data=have_w_num_id2 (keep=id) out=n_id_nodupkey2 nodupkey;
  by id;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 03:00:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639250#M190121</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2020-04-12T03:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639252#M190123</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt; I am with you now.&lt;/P&gt;
&lt;P&gt;This option may be what you are after:&lt;/P&gt;
&lt;DIV class="xis-syntaxSimple" style="box-sizing: border-box; margin-top: 0.8em; display: block; overflow: auto; color: #333333; font-family: AvenirNext, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;"&gt;
&lt;DIV class="xis-syntaxLevel" style="box-sizing: border-box; text-indent: -0.7em; margin-top: 0.6em; margin-left: 0.7em; display: block;"&gt;&lt;SPAN class="xis-keyword" style="box-sizing: border-box; font-weight: 600;"&gt;SORTDUP=&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="xis-argRequired" style="box-sizing: border-box;"&gt;&lt;SPAN class="xis-choice" style="box-sizing: border-box;"&gt;&lt;A style="box-sizing: border-box; background-color: transparent; color: #287eab; text-decoration: none;" tabindex="0" title="Description of syntax: PHYSICAL" href="https://documentation.sas.com/?docsetId=lesysoptsref&amp;amp;docsetTarget=p0enmy04p8nukmn1cjpdcqku455s.htm&amp;amp;docsetVersion=3.1&amp;amp;locale=en#n06yzbef01kkhrn1op08w2ytktay" data-docset-id="lesysoptsref" data-docset-version="3.1" data-original-href="p0enmy04p8nukmn1cjpdcqku455s.htm#n06yzbef01kkhrn1op08w2ytktay"&gt;PHYSICAL&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN class="xis-choice" style="box-sizing: border-box;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;|&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A style="box-sizing: border-box; background-color: transparent; color: #287eab; text-decoration: none;" tabindex="0" title="Description of syntax: LOGICAL" href="https://documentation.sas.com/?docsetId=lesysoptsref&amp;amp;docsetTarget=p0enmy04p8nukmn1cjpdcqku455s.htm&amp;amp;docsetVersion=3.1&amp;amp;locale=en#n1ab4hvxpq958ln1iuwg0ml29btc" data-docset-id="lesysoptsref" data-docset-version="3.1" data-original-href="p0enmy04p8nukmn1cjpdcqku455s.htm#n1ab4hvxpq958ln1iuwg0ml29btc"&gt;LOGICAL&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="xis-syntaxDescription" style="box-sizing: border-box; color: #333333; font-family: AvenirNext, Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;"&gt;
&lt;DIV class="xis-otherArgGroup" style="box-sizing: border-box;"&gt;
&lt;H3 id="p1wyuz3emnbeq5n160isv0tx1z07" class="xis-title" style="box-sizing: border-box; font-family: inherit; font-weight: bold; line-height: 1.1; color: inherit; margin-top: 2.2em; margin-bottom: 10px; font-size: 1.125rem;"&gt;Syntax Description&lt;/H3&gt;
&lt;DIV id="n06yzbef01kkhrn1op08w2ytktay" class="xis-argDescriptionPair" style="box-sizing: border-box; margin-top: 1.4em;"&gt;
&lt;H4 class="xis-argument" style="box-sizing: border-box; font-family: inherit; font-weight: bold; line-height: 1.1; color: inherit; margin-top: 0px; margin-bottom: 0px; font-size: 0.88rem;"&gt;PHYSICAL&lt;/H4&gt;
&lt;DIV class="xis-argumentDescription" style="box-sizing: border-box; margin-left: 2em;"&gt;
&lt;P class="xis-paraSimpleFirst" style="box-sizing: border-box; margin: 0px;"&gt;removes duplicates based on all the variables that are present in the data set.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="n1ab4hvxpq958ln1iuwg0ml29btc" class="xis-argDescriptionPair" style="box-sizing: border-box; margin-top: 1.4em;"&gt;
&lt;H4 class="xis-argument" style="box-sizing: border-box; font-family: inherit; font-weight: bold; line-height: 1.1; color: inherit; margin-top: 0px; margin-bottom: 0px; font-size: 0.88rem;"&gt;LOGICAL&lt;/H4&gt;
&lt;DIV class="xis-argumentDescription" style="box-sizing: border-box; margin-left: 2em;"&gt;
&lt;P class="xis-paraSimpleFirst" style="box-sizing: border-box; margin: 0px;"&gt;removes duplicates based on only the variables remaining after the DROP= and KEEP= data set options are processed.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 03:31:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639252#M190123</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-12T03:31:15Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639315#M190171</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;: While my quest for finding my first bug must continue, that was definitely the key to solving&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;'s problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The actual documentation can be found at:&amp;nbsp;&lt;A href="https://documentation.sas.com/?docsetId=lesysoptsref&amp;amp;docsetTarget=p0enmy04p8nukmn1cjpdcqku455s.htm&amp;amp;docsetVersion=3.1&amp;amp;locale=en"&gt;https://documentation.sas.com/?docsetId=lesysoptsref&amp;amp;docsetTarget=p0enmy04p8nukmn1cjpdcqku455s.htm&amp;amp;docsetVersion=3.1&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thus, running:&amp;nbsp;options sortdup=logical;&lt;/P&gt;
&lt;P&gt;turned this into a feature rather than a bug. I never confronted it as I never found a reason to use nodup over nodupkey.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 13:23:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639315#M190171</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2020-04-12T13:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639332#M190182</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;&amp;nbsp; Thank you - the way SAS&amp;nbsp;has it set up is very counter intutive.&amp;nbsp; I expected SAS to behave the same way as nodupkey since the only variable I am interested in was the dr_id variable.&amp;nbsp;&amp;nbsp; I reviewed the documentation and tested the following code. I expected the 1st proc sort to behave like yesterday's code - but it deleted the duplicate observation.&amp;nbsp; So do you see the difference?&amp;nbsp; I attahed the log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data tmp;&lt;/P&gt;
&lt;P&gt;input avar $1.;&lt;/P&gt;
&lt;P&gt;cards;&lt;/P&gt;
&lt;P&gt;a&lt;/P&gt;
&lt;P&gt;b&lt;/P&gt;
&lt;P&gt;c&lt;/P&gt;
&lt;P&gt;a&lt;/P&gt;
&lt;P&gt;;;;;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;PRE style="border-width: 0px; margin: 0px; padding: 0px; left: -1000px; top: 0px; text-align: left; color: #2a3037; text-transform: none; line-height: 1.25; text-indent: 0px; letter-spacing: normal; font-size: 14px; font-style: normal; font-weight: 400; word-spacing: 0px; position: fixed; orphans: 2; widows: 2; background-color: #ffffff; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-rendering: optimizespeed; text-decoration-color: initial; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-size-adjust: none;"&gt;data tmp;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;input avar $1.;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;cards;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;b&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;c&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;;;;;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp(keep=avar) out=_keep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp out=_nokeep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;/PRE&gt;
&lt;P&gt;proc sort noduprecs data=tmp(keep=avar) out=_keep;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by avar;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort noduprecs data=tmp out=_nokeep;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by avar;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE style="border-width: 0px; margin: 0px; padding: 0px; left: -1000px; top: 0px; text-align: left; color: #2a3037; text-transform: none; line-height: 1.25; text-indent: 0px; letter-spacing: normal; font-size: 14px; font-style: normal; font-weight: 400; word-spacing: 0px; position: fixed; orphans: 2; widows: 2; background-color: #ffffff; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-rendering: optimizespeed; text-decoration-color: initial; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-size-adjust: none;"&gt;data tmp;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;input avar $1.;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;cards;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;b&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;c&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;;;;;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp(keep=avar) out=_keep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp out=_nokeep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;/PRE&gt;
&lt;PRE style="border-width: 0px; margin: 0px; padding: 0px; left: -1000px; top: 0px; text-align: left; color: #2a3037; text-transform: none; line-height: 1.25; text-indent: 0px; letter-spacing: normal; font-size: 14px; font-style: normal; font-weight: 400; word-spacing: 0px; position: fixed; orphans: 2; widows: 2; background-color: #ffffff; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-rendering: optimizespeed; text-decoration-color: initial; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-size-adjust: none;"&gt;data tmp;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;input avar $1.;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;cards;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;b&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;c&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;a&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;;;;;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp(keep=avar) out=_keep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;proc sort noduprecs data=tmp out=_nokeep;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;   by avar;&lt;BR style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-size-adjust: none;" /&gt;run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 15:46:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639332#M190182</guid>
      <dc:creator>Julie4435637</dc:creator>
      <dc:date>2020-04-12T15:46:09Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639336#M190185</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/39634"&gt;@Julie4435637&lt;/a&gt;&amp;nbsp;: Since the file only has one variable, logical and physical are the same in that the keep option doesn't do anything in this case. My personal recommendation is simply to ALWAYS use proc sort's nodupkey option when you need to remove duplicates.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2020 15:59:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639336#M190185</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2020-04-12T15:59:54Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639385#M190218</link>
      <description>&lt;P&gt;The default should be&amp;nbsp; &lt;FONT face="courier new,courier"&gt; sortdup=logical.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not only is &amp;nbsp; &lt;FONT face="courier new,courier"&gt;sortdup=physical&amp;nbsp; &lt;/FONT&gt;less intuitive, it is also inefficient as it lets PROC SORT load more variables than probably intended.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data t; 
  length X $1024;
  do I=1e6 to 1 by -1;
    output;
  end; 
run;
options sortdup=physical ;
proc sort data=T(keep=I) out=T1 noduprec; by I; run;
options sortdup=logical ;
proc sort data=T(keep=I) out=T1 noduprec; by I; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt; 79         options sortdup=physical ;
 80         proc sort data=T(keep=I) out=t1 noduprec; by I; run;
 
 NOTE: There were 1000000 observations read from the data set WORK.T.
 NOTE: 0 duplicate observations were deleted.
 NOTE: The data set WORK.T1 has 1000000 observations and 1 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           25.45 seconds
       cpu time            2.56 seconds
       
 
 81         options sortdup=logical ;
 82         proc sort data=T(keep=I) out=t1 noduprec; by I; run;
 
 NOTE: There were 1000000 observations read from the data set WORK.T.
 NOTE: 0 duplicate observations were deleted.
 NOTE: The data set WORK.T1 has 1000000 observations and 1 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           15.61 seconds
       cpu time            0.85 seconds
       
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2020 01:05:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639385#M190218</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-13T01:05:40Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639388#M190220</link>
      <description>&lt;P&gt;Personally, I think the NODUPRECS option should be avoided.&amp;nbsp; It does not provide useful functionality beyond what can be done with NODUPKEY and BY _ALL_, and of course it does not do the same thing as NODUPKEY BY _ALL_, which is surprising.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hadn't known before about this interesting SORTDUP=physical|logical option, but the fact that NODUPRECS would not delete observations that are not consecutive was enough for me to avoid it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't see any mention of the NODUPRECS option in the current docs:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?docsetId=proc&amp;amp;docsetTarget=p02bhn81rn4u64n1b6l00ftdnxge.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en"&gt;https://documentation.sas.com/?docsetId=proc&amp;amp;docsetTarget=p02bhn81rn4u64n1b6l00ftdnxge.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I would think of NODUPRECS as deprecated (at best).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there a case where NODUPRECS can accomplish something useful which can not be accomplished via NODUPKEY?&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2020 01:40:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639388#M190220</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2020-04-13T01:40:54Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639416#M190240</link>
      <description>&lt;P&gt;Mmm interesting.&lt;/P&gt;
&lt;P&gt;This option is still mentioned elsewhere, but this could indeed indicate that it's on its way to deprecation.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?docsetId=proc&amp;amp;docsetVersion=9.4&amp;amp;docsetTarget=p1sy9ca8n2tv03n1savk4p9cmeq0.htm&amp;amp;locale=en"&gt;https://documentation.sas.com/?docsetId=proc&amp;amp;docsetVersion=9.4&amp;amp;docsetTarget=p1sy9ca8n2tv03n1savk4p9cmeq0.htm&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?docsetId=lrcon&amp;amp;docsetTarget=n0flzgu1cpvz16n1xvwchd0ogsut.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en"&gt;https://documentation.sas.com/?docsetId=lrcon&amp;amp;docsetTarget=n0flzgu1cpvz16n1xvwchd0ogsut.htm&amp;amp;docsetVersion=9.4&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://documentation.sas.com/?docsetId=proc&amp;amp;docsetTarget=p1r64hrox6o1j6n1oxtbeey2xfm0.htm&amp;amp;docsetVersion=3.2&amp;amp;locale=en"&gt;https://documentation.sas.com/?docsetId=proc&amp;amp;docsetTarget=p1r64hrox6o1j6n1oxtbeey2xfm0.htm&amp;amp;docsetVersion=3.2&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I'll tell the documentation people about this apparent inconsistency.&lt;/P&gt;
&lt;P&gt;I agree with you, its utility is dubious, and it's got too many gotchas (consecutive records needed, and logical/physical variables).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One positive: It's much faster than running a by _ALL_, if you know that your data is suitable with these limitations.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data T; 
  array V[100];
  do I =1 to 1e6; 
    V[1]=ranuni(0);
    output;
  end;
proc sort data =T out=T1 nodupkey; by V1 _all_; run; 
proc sort data =T out=T1 noduprec; by V1 ;      run;  &lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;74           proc sort data =T out=T1 nodupkey; by V1 _all_; run;
 
 NOTE: There were 1000000 observations read from the data set WORK.T.
 NOTE: Duplicate BY variable(s) specified. Duplicates will be ignored.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK.T1 has 1000000 observations and 102 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           2:54.55
       cpu time            14.09 seconds
       
 
 75           proc sort data =T out=T1 noduprec; by V1 ; run;
 
 NOTE: There were 1000000 observations read from the data set WORK.T.
 NOTE: 0 duplicate observations were deleted.
 NOTE: The data set WORK.T1 has 1000000 observations and 102 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           24.78 seconds
       cpu time            3.41 seconds&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2020 08:22:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/639416#M190240</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-13T08:22:32Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/641572#M191228</link>
      <description>&lt;P&gt;&lt;EM&gt;&amp;gt; I'll tell the documentation people about this apparent inconsistency.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Here is the update:&lt;/P&gt;
&lt;P class="yiv0082032342msonormal"&gt;&lt;FONT face="batang,apple gothic"&gt;In PROC SORT that option was removed before 9.4. If you are searching in the source code, it appears in comments for historical information only and does not show up in the PROC SORT documentation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="yiv0082032342msonormal"&gt;&lt;FONT face="batang,apple gothic"&gt;[To the] point that it should have been mentioned as deprecated [] I searched the 9.2 and 9.3 versions of the What’s New and that was missed. Thank you for letting us know that it was still mentioned a few other places. It is definitely an option that we do not want to use.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="yiv0082032342msonormal"&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;So it seems that our reservations about this option are shared, and the option is now gone.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Apr 2020 11:39:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/641572#M191228</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2020-04-21T11:39:28Z</dc:date>
    </item>
    <item>
      <title>Re: proc sort - noduprec vs nodupkey</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/641589#M191240</link>
      <description>Thanks for following up with tech support and sharing their response, &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt; .  I'm happy to see that NODUPRECS is "officially" deprecated.  I'd wager that 1/2 of the  PROC SORT questions on SAS-L over the generations were about the oddity of NODUPRECS not actually removing all duplicated records.  Good riddance to NODUPRECS.  : )</description>
      <pubDate>Tue, 21 Apr 2020 12:33:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-sort-noduprec-vs-nodupkey/m-p/641589#M191240</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2020-04-21T12:33:22Z</dc:date>
    </item>
  </channel>
</rss>

