SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
mariange8282
Obsidian | Level 7

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 

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

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

2 REPLIES 2
Reeza
Super User

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;

ballardw
Super User

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

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

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
  • 2 replies
  • 2901 views
  • 0 likes
  • 3 in conversation