DATA Step, Macro, Functions and more

SGPLOT VBOX - Category Order

Accepted Solution Solved
Reply
Contributor
Posts: 23
Accepted Solution

SGPLOT VBOX - Category Order

[ Edited ]

Hi, I'm trying to to a VBOX PLOT. 

I have a data set like: I have 24 intervals, I1-I24

_LABEL_  COL1

I1             0

I1             4

I10           7

I10           7

I11          6

I11          5

....

I8            4

I8            6

I9            4

I9            5

I has to sort it to transpose my data. 

When I run:

 

 proc sgplot data=mergedt;
vbox COL1/ category=_LABEL_;
xaxis grid label="Interval" discreteorder=data;
yaxis grid label="XX";
run;

My plot in xaxis is I1 I10 I11 I12 .. I19 I2 20 I21 .. I24 I3 I4 ..I9

I need my xaxis like I1 I2 I3 I4 ..... I23 I24

 

I have try with discreteorder=format or unformart and it is the same result. Any idea to "unsort it" or have the xaxis in numeric order?

 

Thanks 


Accepted Solutions
Solution
‎11-06-2016 03:45 PM
Super User
Posts: 17,863

Re: SGPLOT VBOX - Category Order

The typical solution is a custom format. Map each Label to a numeric variable that sorts correctly and then a format that maps to the variable you want displayed. 

 

Proc format;

value Icat

1= 'I1'

2='I2'

...

24='I24';

 

proc SGPLOT ...;

....

format label icat.;

run;quit;

View solution in original post


All Replies
Solution
‎11-06-2016 03:45 PM
Super User
Posts: 17,863

Re: SGPLOT VBOX - Category Order

The typical solution is a custom format. Map each Label to a numeric variable that sorts correctly and then a format that maps to the variable you want displayed. 

 

Proc format;

value Icat

1= 'I1'

2='I2'

...

24='I24';

 

proc SGPLOT ...;

....

format label icat.;

run;quit;

Super User
Posts: 10,516

Re: SGPLOT VBOX - Category Order

Or use Proc Sort to sort the data with the SORTSEQ option Linguistic with Numeric_Collation=On

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 331 views
  • 0 likes
  • 3 in conversation