0

I am using ODS to output an rtf file with graphs for each warehouse, using the warehouse ID as the by value. I need to organize the graphs in ascending order of rejected products per 100 produced. I was reordering the graphs manually in Word, but now I am being asked to produce this for the top 20 warehouses instead of the top 5 and would prefer not to do this manually. I've created a variable (norder) to indicate the ranking of each warehouse, but if I sort by this or try to use it as a by value, it messes up the graphs. I have also tried the NOTSORTED option, but this did not work. Is there an easy way to do this? Below is my code:

    proc transpose data=WIDE_war
    out=Long_war(rename=(Col1=Value))
    name=source;
    by norder ID name county zipcode date;
    var defect1 defect2;
run;
    
proc sort data=long_war; by ID name zipcode county; run;

OPTIONS orientation=landscape nodate;
ods rtf file="C:\Users\....Top_10_Warehouse.rtf" STYLE=Styles.rtf bodytitle STARTPAGE=NO;;
ods listing close;
ods noproctitle  ;
ODS ESCAPECHAR='^';
title; footnote;
title;

ods graphics on / height=7in width=9in; 
ods graphics/noborder;

/*Table*/
/*List  name, ID, number of products produced, number of defects, the rate of defects per 100 units produced */
/*sort by descending order of the last number */

ods rtf text= "^{style[fontweight=bold just=c fontsize=14pt]Warehouses with the greatest number of defects per 100 units produced}"; 

proc sort data=req4; by descending rejrat2; run;
proc print data=req4 noobs label;
var ID name ZIPcode County;
var mean_prod newdefects rejrat2 /style(data)={ width=1in};
run;

* time trend plots;
ods rtf startpage=NOW;

ods rtf text= "^{style[fontweight=bold just=c fontsize=14pt] Trend plot of the warehouses listed in the above table since June 01, 2020}";   

proc sgplot data=long_war;
by ID name county ;
    title1 "ID= #byval(ID) ";
    title2 "Name: #byval(name) ";
    title3 "County: #byval(county) ";

vbar date/ response=Value group=source groupdisplay=stack grouporder=data NOOUTLINE;

xaxis type=linear thresholdmin=0 label="Date" 
    values=('01jun20'd to '13dec20'd by 7)
    labelattrs=(size=12pt weight=bold)
    valueattrs=(size=13pt);
yaxis min=0 label="Count" INTEGER grid 
    labelattrs=(size=12pt weight=bold)
    values=(0 to 35 by 5)
    valueattrs=(size=13pt) fitpolicy=thin offsetmin=0 ;
label Source = "Defects by type"
    Value = "Count";
options NOBYLINE;
run;

ods rtf close;
ods listing ;
Druscilla
  • 3
  • 2
  • Interesting question but without data sample for [mcve] we cannot fully help. One quick way to provide us a sample for at least one warehouse is to export small sample (enough to reproduce issue) to csv and post text in body of question (not image or link) or better yet with a `data` step that includes `infile datalines delimiter=',' DSD;` and `datalines` to create `WIDE_war`. – Parfait Dec 07 '20 at 16:23
  • You seem to already be ordering by variables (ID NAME COUNTY) that are not in the plots. What is it you need help with? – Tom Dec 07 '20 at 16:50

0 Answers0