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
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;
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;
Or use Proc Sort to sort the data with the SORTSEQ option Linguistic with Numeric_Collation=On
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.