BookmarkSubscribeRSS Feed
Medidata
Fluorite | Level 6

Hello,

I am a non-professional SAS user, a medical student, so I have no idea about macros, etc. Can anyone just tell me in very simple terms how do I change the colour and style of lines in a kaplan graph (Proc lifetest)? I followed the guideline of SAS user guide and pasted this code
[%ProvideSurvivalMacros


%let GraphOpts = DataContrastColors=(green red blue)
DataColors=(green red blue);


%CompileSurvivalTemplates


proc lifetest data=WORK.IMPORT;
time 'Survival months1'n*'Survival months'n(1);
strata Stage;
run;]

But I am now getting this error.SAS error.JPG

3 REPLIES 3
FreelanceReinh
Jade | Level 19

Hello @Medidata,

 

As a prerequisite for using %ProvideSurvivalMacros and %CompileSurvivalTemplates you need to run the code provided in https://support.sas.com/documentation/onlinedoc/stat/ex_code/151/templft.html from %macro ProvideSurvivalMacros; at the beginning (the preceding comment block "S A S   S A M P L E   L I B R A R Y" is optional) until the very last %mend; at the bottom of the page. Just copy and paste this code into the program editor of your user interface and submit the code as you would any other code. Note that this code alone does not create any notes in the log. It just compiles the SAS macro ProvideSurvivalMacros, which you then call (i.e., execute) with %ProvideSurvivalMacros and use with the subsequent statements (%let ... etc.) of your code.

 

Edit: It looks like you have accidentally marked your post as an "announcement" by selecting the checkbox "No solution needed for this topic" -- which is obviously not what you intended. 🙂 Not sure if you can deselect the checkbox when editing your post (by selecting Edit from the option menu with the three-horizontal-lines icon).

Medidata
Fluorite | Level 6
Thank you so much. The code is now working fine.
Ksharp
Super User
proc format;
   value grpLabel 1='ALL' 2='AML low risk' 3='AML high risk';
run;

data BMT;
        input DIAGNOSIS Ftime Status Gender@@;
        label Ftime="Days";
        format Diagnosis grpLabel.;
datalines;
1       2081       0       1       1       1602    0       1
1       1496       0       1       1       1462    0       0
1       1433       0       1       1       1377    0       1
1       1330       0       1       1       996     0       1
1       226        0       0       1       1199    0       1
1       1111       0       1       1       530     0       1
1       1182       0       0       1       1167    0       0
1       418        2       1       1       383     1       1
1       276        2       0       1       104     1       1
1       609        1       1       1       172     2       0
1       487        2       1       1       662     1       1
1       194        2       0       1       230     1       0
1       526        2       1       1       122     2       1
1       129        1       0       1       74      1       1
1       122        1       0       1       86      2       1
1       466        2       1       1       192     1       1
1       109        1       1       1       55      1       0
1       1          2       1       1       107     2       1
1       110        1       0       1       332     2       1
2       2569       0       1       2       2506    0       1
2       2409       0       1       2       2218    0       1
2       1857       0       0       2       1829    0       1
2       1562       0       1       2       1470    0       1
2       1363       0       1       2       1030    0       0
2       860        0       0       2       1258    0       0
2       2246       0       0       2       1870    0       0
2       1799       0       1       2       1709    0       0
2       1674       0       1       2       1568    0       1
2       1527       0       0       2       1324    0       1
2       957        0       1
3       2640       0       1       3       2430    0       1
3       2252       0       1       3       2140    0       1
3       2133       0       0       3       1238    0       1
3       1631       0       1       3       2024    0       0
3       1345       0       1       3       1136    0       1
3       845        0       0       3       422     1       0
3       162        2       1       3       84      1       0
3       100        1       1       3       2       2       1
3       47         1       1       3       242     1       1
3       456        1       1       3       268     1       0
3       318        2       0       3       32      1       1
3       467        1       0       3       47      1       1
3       390        1       1       3       183     2       0
3       105        2       1       3       115     1       0
3       164        2       0       3       93      1       0
3       120        1       0       3       80      2       1
3       677        2       1       3       64      1       0
3       168        2       0       3       74      2       0
3       16         2       0       3       157     1       0
3       625        1       0       3       48      1       0
3       273        1       1       3       63      2       1
3       76         1       1       3       113     1       0
3       363        2       1
;
run;

ods select none;
ods output SurvivalPlot=SurvivalPlot;
proc lifetest data=bmt plots=(survival);
time ftime*Status(0);
strata diagnosis;
run;
ods select all;



title '缓解概率';
ods graphics /ATTRPRIORITY=none;
proc sgplot data=SurvivalPlot;
styleattrs DATASYMBOLS=(plus diamond X);
step x=Time y=Survival / group=Stratum lineattrs=(pattern=solid) name='x' ;
scatter x=Time y=Censored / group=Stratum ;
legenditem name='a' type=MARKERLINE / label='ALL' MARKERATTRS=graphdata1(symbol=plus) LINEATTRS=graphdata1;
legenditem name='b' type=MARKERLINE / label='AML high risk' MARKERATTRS=graphdata2(symbol=diamond) LINEATTRS=graphdata2;
legenditem name='c' type=MARKERLINE / label='AML low risk' MARKERATTRS=graphdata3(symbol=X) LINEATTRS=graphdata3;

keylegend 'a' 'b' 'c' / across=1 location=inside position=ne ;
keylegend 'x';
run;

Ksharp_0-1671019485239.png

 


title '缓解概率';
ods graphics /ATTRPRIORITY=none;
proc sgplot data=SurvivalPlot;
styleattrs DATASYMBOLS=(plus diamond X);
step x=Time y=Survival / group=Stratum  ;
scatter x=Time y=Censored / group=Stratum ;
legenditem name='a' type=MARKERLINE / label='ALL' MARKERATTRS=graphdata1(symbol=plus) LINEATTRS=graphdata1;
legenditem name='b' type=MARKERLINE / label='AML high risk' MARKERATTRS=graphdata2(symbol=diamond) LINEATTRS=graphdata2;
legenditem name='c' type=MARKERLINE / label='AML low risk' MARKERATTRS=graphdata3(symbol=X) LINEATTRS=graphdata3;

keylegend 'a' 'b' 'c' / across=1 location=inside position=ne ;
run;

Ksharp_1-1671019506325.png

 

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 625 views
  • 3 likes
  • 3 in conversation