03-11-2013 03:50 PM
Does anyone know how to creat a boxplot with descending y axis mean values? It seems the only options for descending is descending alphabetical by the xaxis classfication variable.
I am doing Proc Boxplot with the following code:
Proc Boxplot data=sw_glove;
By Descending Process;
I want descending Concentration values, grouped by Process (numeric), not descending process names (alpahbetic).
Another option would be to list out the x axis variable names in the descending value order, but this seems like a lot of meaningless work.
03-11-2013 09:32 PM
In SGPLOT, I would probably do this by sorting the data, then using discreteorder=data on the axis statemetn, as below.
proc sql; create table shoes as select region, sales, mean(sales) as mean from sashelp.shoes group by region order by mean descending,region ; quit; title1 "discreteorder=data"; proc sgplot data=shoes; vbox sales/category=region; xaxis type=discrete discreteorder=data; run; title1;
Not sure the easiest way to do it with PROC BOXPLOT. If you do need a list of x-values for an x-statement, you could generate it with something like:
170 proc sql; 171 select distinct quote(trim(region)) , mean(sales) as mean 172 into :RegionList separated by " ", :dummy 173 from sashelp.shoes 174 group by region 175 order by mean descending 176 ; 177 quit; 178 179 %put &RegionList; "Middle East" "United States" "Canada" "Central America/Caribbean" "Western Europe" "Eastern Europe" "Pacific" "South America" "Africa" "Asia"