BookmarkSubscribeRSS Feed
Adie_efc
Calcite | Level 5


I have two issues with my template code;

1) I want to have some text at the top of the plot with ID, Treatment, sex, race and age. These are variables in the dataset.

If I use the variable name in my grender code (eg as per _trt) and use the entry title below

proc sgrender data= x template=steven;

by subjid trta;

dynamic _x     = 'ady'

         _y     = 'aval'

         _var = 'paramcd'

         _trt = 'trta'

         _subj = 'subjid'

       _label ='test values'

;

run;

entrytitle halign=center "ID: " _subj  "   Treatment group: " _trt

                       /  textattrs=(size=10 family="Arial");

all I get is the text _subjid and _trt rather than the values. Ive got round it by using by variable but this ends up being stupid with 5 of them.

2) The second issue is that I want to have reference lines at the start (x=0) labelled start, one at the day they stopped (varies per pt) labelled stop and the same for when they died.

       referenceline x=0 / lineattrs=(pattern=1)  curvelabel="Start"  curvelabellocation=inside;

       referenceline x=died / lineattrs=(pattern=1) curvelabel="Died"  curvelabellocation=inside ;

       referenceline x=stop / lineattrs=(pattern=1) curvelabel="Stop" curvelabellocation=inside ;

this works fine for the x=0 line but puts the values rather than the label on the latter two.

have attached (hopefully) the program, dataset and output.

Thanks!

Adrienne M Bonwick (Adie)

4 REPLIES 4
Adie_efc
Calcite | Level 5

ha! Formatting the variable so all the values are Died or Stop worked for the second issue.

proc format;
value died
  low - high ='Died';
value stop
  low - high ='Stop';
run;

data x;
set x;
format died died. stop stop.;
run;

DanH_sas
SAS Super FREQ

For the first item, try this:

entrytitle halign=center "ID: " eval(colname(_subj))  "   Treatment group: " _trt

                       /  textattrs=(size=10 family="Arial");

-or-

entrytitle halign=center "ID: " eval(collabel(_subj))  "   Treatment group: " _trt

                       /  textattrs=(size=10 family="Arial");

Hope this helps!

Dan

Adie_efc
Calcite | Level 5

entrytitle halign=center "Race: " eval(collabel(_race))

                       /  textattrs=(size=10 family="Arial");

gives me the same thing Race: Race (the first example Colname) gives me Race: RACE. the value of Race is Caucasian.

Capture.JPG

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 1158 views
  • 0 likes
  • 2 in conversation