Hello everyone, I have a question regarding proc sort. Anyone can help? Thanks in advance!
For example I have a dataset "survey", and a character variable "question" and want to sort it.
I hope to get the ideal sequence order, but I got the sorted sequence in the middle column. I wonder whether it is possible to get the ideal sequence in SAS? Thanks!!!
proc sort data=survey;
by question;
run;
original sequence | after sorting | ideal sequence |
q2 | q1 | q1 |
q3 | q10 | q2 |
q4 | q2 | q3 |
q5 | q3 | q4 |
q1 | q4 | q5 |
q7 | q5 | q6 |
q10 | q6 | q7 |
q8 | q7 | q8 |
q9 | q8 | q9 |
q6 | q9 | q10 |
I think you are looking for the following:
data survey;
input question $;
cards;
q2
q3
q4
q5
q1
q7
q10
q8
q9
q6
;
proc sort data=survey SORTSEQ=linguistic
(NUMERIC_COLLATION=ON);
by question;
run;
I think you are looking for the following:
data survey;
input question $;
cards;
q2
q3
q4
q5
q1
q7
q10
q8
q9
q6
;
proc sort data=survey SORTSEQ=linguistic
(NUMERIC_COLLATION=ON);
by question;
run;
Hi Authur,
This is exactly what I wanted. Thank you so much!!!
Yanmin
Or a SQL way which has more power.
data survey; input question $; cards; q2 q3 q4 q5 q1 q7 q10 q8 q9 q6 ; run; proc sql; create table want as select * from survey order by input(compress(question, ,'kd'),best8.); quit;
Ksharp
Thank you so much, Ksharp!
Your Sql code works very well. It is great to know both methods work.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.