Hi all, I am having a little issue with changing the variable names in the legend of PRC SGPANEL. Ballard had a great response to a similar question explaining the power of proc format. However, my data is a little different because I apply three different variables on the Y axis from three different lines. My current code looks like this: %macro Quarter(data,category,out,label,title);
proc sql;
create table &category._&out. as select
mean(I_PreResYr1stT_&category) as Pre_Q1,
mean(I_PreResYr2ndT_&category) as Pre_Q2,
mean(I_PreResYr3rdT_&category) as Pre_Q3,
mean(I_PostResYr1stT_&category) as Pos_Q1,
mean(I_PostResYr2ndT_&category) as Pos_Q2,
mean(I_PostResYr3rdT_&category) as Pos_Q3
from &data
where TRICHOT_1YR ne . and Full_Alc_Exp = 1
group by TRICHOT_1YR;
quit;
proc transpose data=&category._&out. out=&category._&out.;run;
data &category._&out. ; set &category._&out. ;
rename COL1 =RA COL2 =UR COL3 =RNA; run;
Proc Format;
value $DS
"RA"="Resolved Abstinent"
"RNA" = "Resolved Non-abstinent"
"UR" = "Unresolved";
run;
data &category._&out.;
set &category._&out.;
Quadrimester = substr(_NAME_,5,2);
if substr(_NAME_,1,3)="Pos" then Year="Post-Resolution Year";
if substr(_NAME_,1,3)="Pre" then Year="Pre-Resolution Year";
drop _NAME_;
run;
ods graphics / reset=all border=off width=650px height=400px;
title height=0.2in "&title";
proc sgpanel data=&category._&out. noautolegend;
panelby Year/sort=(descformat) headerattrs=(family=arial size= 16pt weight=bold) novarname;
series x=Quadrimester y=RA/
markers markerattrs=(symbol=circlefilled size=3pct color=green) lineattrs=(color=green thickness=4 pattern=longdash);
series x=Quadrimester y=UR/
markers markerattrs=(symbol=circlefilled size=3pct color=blue) lineattrs=(color=blue thickness=4 pattern=ShortDashDot);
series x=Quadrimester y=RNA/
markers markerattrs=(symbol=circlefilled size=3pct color=red) lineattrs=(color=red thickness=3 pattern=solid);
rowaxis label="&label" labelattrs=(family=arial size=16pt weight=bold ) valueattrs=(family=arial size=16pt weight=bold);
colaxis label=' ' labelattrs=(size=16pt ) valueattrs=(family=arial weight=bold size=16pt );
run;
%mend;
ods rtf file="U:\Documents\ARC Expenditure and Integrity\SinglePaneTrendPlot_071519.rtf" gtitle bodytitle;
%Quarter(sub.newcatinflation2,TLFPL ,Q, Inflation-Adjusted Dollars, Quadrimester Trend for Financial and Legal Affairs );
%Quarter(sub.newcatinflation2,DurInsHouse ,Q, Inflation-Adjusted Dollars, Quadrimester Trend for Housing/Durable Goods/Insurance );
ods rtf close; I also have tried to address this when I rename columns by renaming the columns "Resolved Abstinent", "unresolved", and "Resolved Non-abstinent" like so: proc transpose data=&category._&out. out=&category._&out.;run;
data &category._&out. ; set &category._&out. ;
rename COL1 ="Resolved Abstinent" COL2 =UR COL3 =RNA; run;
data &category._&out.;
set &category._&out.;
Quadrimester = substr(_NAME_,5,2);
if substr(_NAME_,1,3)="Pos" then Year="Post-Resolution";
if substr(_NAME_,1,3)="Pre" then Year="Pre-Resolution";
drop _NAME_;
run;
ods graphics / reset=all border=off width=650px height=400px;
title height=0.2in "&title";
footnote justify=center "&footnote";
proc sgpanel data=&category._&out. noautolegend;
panelby Year/sort=(descformat) headerattrs=(family=arial size= 16pt weight=bold) ;
series x=Quadrimester y="Resolved Abstinent"/
markers markerattrs=(symbol=circlefilled size=3pct color=blue) lineattrs=(color=blue thickness=4 pattern=longdash);
series x=Quadrimester y=UR/ However, I get errors saying: NOTE: There were 3 observations read from the data set WORK.CONSUME_Q.
NOTE: The data set WORK.CONSUME_Q has 6 observations and 4 variables.
NOTE: PROCEDURE TRANSPOSE used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
22: LINE and COLUMN cannot be determined.
NOTE 242-205: NOSPOOL is on. Rerunning with OPTION SPOOL might allow recovery of the LINE and COLUMN where the error has occurred.
ERROR 22-322: Expecting a name.
200: LINE and COLUMN cannot be determined.
NOTE: NOSPOOL is on. Rerunning with OPTION SPOOL might allow recovery of the LINE and COLUMN where the error has occurred.
ERROR 200-322: The symbol is not recognized and will be ignored.
NOTE: The SAS System stopped processing this step because of errors. Is there an easy way which I can rename the legend variables? P.S. I do recognize that right now I have "noautolegend" right now. I had it on for a different graph. The results without this are the same.
... View more