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
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.
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;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.