BookmarkSubscribeRSS Feed
AJCFreeman
Fluorite | Level 6

Hi,

I have a proc gchart and I would like to order the data based on 2 columns instead of one.

 

PROC GCHART DATA=data_set;
format MyMetric 8.0;
HBAR MyDim / discrete maxis=axis1 raxis=axis2 nostats sumvar=MyMetric DESCENDING
coutline=black patternid=subgroup subgroup=fillcolor annotate=anno_dataset nolegend noframe width=.6 space=.6;
run;

 

right now i am displaying the data in descending order based on a MyMetric. but i would also like a second order in case of ties.

I ordered the data properly in  a data set. However it doesn't keep the order of the data set.

it uses the alphabetic order for the second order based on MyDim. 

1 REPLY 1
ChrisNZ
Tourmaline | Level 20

Same trick as memtioned in your previous question.

Just adjust the order variable's value slightly to ensure the desired plot order.

 

 


data HAVE;
  MYDIM='A'; MYMETRIC=11; output;
  MYDIM='B'; MYMETRIC=10; output;
  MYDIM='C'; MYMETRIC=12; output;
  MYDIM='D'; MYMETRIC=12; output;
run;

data PLOT;
  set HAVE;
  if MYDIM='D' then  MYMETRIC + - 1e-9; 
run;      
 
proc gchart data=PLOT;
  hbar MYDIM / discrete nostats sumvar=MYMETRIC descending;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1111 views
  • 0 likes
  • 2 in conversation