I have dataset like this
data have;
input subjid value;
format subjid z3.;
cards;
001 -4
005 -4
003 30
002 -4
004 -4
006 26
007 6
;
run;
step1: Sorting by ascending and give rank number.
step2:subject with the same vaule are given the average of the rankings;
For step 2 : I have no idea how to output average of the rankings;
Please kindly help;
Final output result i want like this ,
I hope that helps you understand my question
data want;
input subjid value rank;
format subjid z3.;
cards;
001 -4 5.5
005 -4 5.5
003 30 1
002 -4 5.5
004 -4 5.5
006 26 2
007 6 3
;
run;
Proc Rank to the rescue:
data have;
input subjid value;
format subjid z3.;
cards;
001 -4
005 -4
003 30
002 -4
004 -4
006 26
007 6
;
run;
proc rank data = have out = want DESCENDING;
var value;
ranks rank;
run;
B
Proc Rank to the rescue:
data have;
input subjid value;
format subjid z3.;
cards;
001 -4
005 -4
003 30
002 -4
004 -4
006 26
007 6
;
run;
proc rank data = have out = want DESCENDING;
var value;
ranks rank;
run;
B
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.