by ranking:
C>B>A>null
any proc sql code to get the max of the character?
i can get max of a numeric value, how to apply the same for character?
Thanks
That's a sad state of affairs. See https://communities.sas.com/t5/SASware-Ballot-Ideas/create-string-summary-functions/idi-p/288035 and vote.
In the meantime, you can use MAX=byte(max(rank(VAR1),rank(VAR2))) since you only have one letter (and if you are not on mainframe).
You can tie each lettet to a new numeric variable with the desired ranking such that if var = 'A' then rankvar = 1; if var = 'B' then rankvar = 2; and so on.
That's a sad state of affairs. See https://communities.sas.com/t5/SASware-Ballot-Ideas/create-string-summary-functions/idi-p/288035 and vote.
In the meantime, you can use MAX=byte(max(rank(VAR1),rank(VAR2))) since you only have one letter (and if you are not on mainframe).
If you want aggregate max, i.e. the max of values found in a column, you can use the MAX() function the same way you would with a numeric variable. If you want to find the the max of values within a row, you can't use the MAX() function, but you can use the MAX operator.
data have;
input x $1. @3 y $1.;
cards;
A Q
C Q
B A
;
run;
proc sql;
select max(x) as mymax from a;
quit;
mymax
C
proc sql;
select x max y as mymax from have;
quit;
mymax
Q
Q
B
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.