Help using Base SAS procedures

How to ignore case while using nodupkey in proc sort?

Reply
Super Contributor
Posts: 265

How to ignore case while using nodupkey in proc sort?

i have code :

 

data test;
input name $ age;
datalines;
a 1
a 2
a 3
A 1
a 4
A 3
A 2
;
run;
proc sort data=test nodupkey ;
by name; run;
proc print; run;

 

output is : A 1

                a  1

desire output is : a 1 (only)

 

is there any possibility to ignore case and select only first unique record.(without any kind of manipulation in data and using only proc sort)

 

Thanks in advance

 

Super User
Posts: 10,500

Re: How to ignore case while using nodupkey in proc sort?

I don't think what you are attempting is possible with Proc Sort. It may be possible with proc sql however as you can upcase as needed:

 

You will either have to take a pass through a data step to UPCASE the variable(s) or add upcased variables.

 

Proc sql may give a similar result but does not have an actual concept of "first" so requires more code and likely data manipulation to maintain order.

Respected Advisor
Posts: 3,777

Re: How to ignore case while using nodupkey in proc sort?

 

data test;
input name $ age;
datalines;
a 1
a 2
a 3
A 1
a 4
A 3
A 2
;
run;
proc print;
   run;
proc summary nway data=test;
   format name $upcase.;
   class name;
   output out=nodupkey(drop=_type_ _freq_) idgroup(out(age--age)=);
   run;
proc print;
   format _all_;
   run;
Ask a Question
Discussion stats
  • 2 replies
  • 227 views
  • 1 like
  • 3 in conversation