BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Kevin_Viel
Obsidian | Level 7

Can one use the inline formatting to superscript within the text of the INSET statement to the SGPLOT procedure?

 

268092  ods graphics on / width = 8in height = 5in noborder ;
268093  proc sgplot data = output1.Demo_08 sganno = __sganno dattrmap = dattrmap pad = ( bottom = 20pct left = 10pct ) noborder noautolegend ;
268094  step x = time y = survival / group = group name = "step" attrid = AML_Risk ;
268095  scatter x = time y = censored / group = group markerattrs = ( size = 8pt symbol = plus ) name = "scatter" attrid = AML_Risk ;
268096  inset "AML-High Risk [Days] (95% CI) =                   183.00 (113.00, 390.00)"
268097        "AML-Low Risk [Days] (95% CI) =                    2204.00 (641.00, NE)"
268098        "`{unicode chi} `{super 2} = 13.45, p-value = 0.0002"
268099        "+ Censored"
268100  / noborder position = topright textattrs = ( size = 7pt family = "Courier New" )
268101  ;
268102  keylegend "step" / location = inside position = bottom noborder ;
268103  xaxis label = "Overall survival (Days)" labelattrs = ( size = 8pt weight = bold family = "Arial" ) valueattrs = ( size = 8pt weight =
268104  normal family = "Arial" ) values = ( 0 to 2500 by 500 ) offsetmin = 0.05 offsetmax = 0 ;
268105  yaxis label = "Survival Probability" labelattrs = ( size = 8pt weight = bold family = "Arial" ) valueattrs = ( size = 8pt weight =
268106  normal family = "Arial" ) offsetmin = 0.1 offsetmax = 0 values = ( 0 to 1 by 0.2 ) ;
268107  format survival percent10. ;
268108  run ;

WARNING 1-322: Assuming the symbol SUP was misspelled as super.
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, EVAL, HALIGN, TEXTATTRS, {.
ERROR 76-322: Syntax error, statement will be ignored.
WARNING: Object will not be saved.

 

Note that if I omit the ODS Escapechar from the superscript: "`{unicode chi} {super 2}", then SAS produces the RTF file.

 

268122  ods graphics on / width = 8in height = 5in noborder ;
268123  proc sgplot data = output1.Demo_08 sganno = __sganno dattrmap = dattrmap pad = ( bottom = 20pct left = 10pct ) noborder noautolegend ;
268124  step x = time y = survival / group = group name = "step" attrid = AML_Risk ;
268125  scatter x = time y = censored / group = group markerattrs = ( size = 8pt symbol = plus ) name = "scatter" attrid = AML_Risk ;
268126  inset "AML-High Risk [Days] (95% CI) =                   183.00 (113.00, 390.00)"
268127        "AML-Low Risk [Days] (95% CI) =                    2204.00 (641.00, NE)"
268128        "`{unicode chi}{super 2} = 13.45, p-value = 0.0002"
268129        "+ Censored"
268130  / noborder position = topright textattrs = ( size = 7pt family = "Courier New" )
268131  ;
268132  keylegend "step" / location = inside position = bottom noborder ;
268133  xaxis label = "Overall survival (Days)" labelattrs = ( size = 8pt weight = bold family = "Arial" ) valueattrs = ( size = 8pt weight =
268134  normal family = "Arial" ) values = ( 0 to 2500 by 500 ) offsetmin = 0.05 offsetmax = 0 ;
268135  yaxis label = "Survival Probability" labelattrs = ( size = 8pt weight = bold family = "Arial" ) valueattrs = ( size = 8pt weight =
268136  normal family = "Arial" ) offsetmin = 0.1 offsetmax = 0 values = ( 0 to 1 by 0.2 ) ;
268137  format survival percent10. ;
268138  run ;

NOTE: PROCEDURE SGPLOT used (Total process time):
      real time           0.76 seconds
      cpu time            0.43 seconds

NOTE: There were 112 observations read from the data set OUTPUT1.DEMO_08.
NOTE: There were 2 observations read from the data set WORK.DATTRMAP.

 

Thank you,

 

Kevin

1 ACCEPTED SOLUTION

Accepted Solutions
data_null__
Jade | Level 19

You must use the escape sequence (*ESC*) 

View solution in original post

2 REPLIES 2
data_null__
Jade | Level 19

You must use the escape sequence (*ESC*) 

Kevin_Viel
Obsidian | Level 7

Well that worked:

 

(*ESC*){unicode chi}(*ESC*){sup '2'}

 

Note that 2 is quoted, but I used single quotations because this become a double-quotation mark text-string for the INSET statement:

 

INSET "text-string<... "text-string-n"> </options>;

 

Note, however, so did `{unicode chi}`{super '2'}, where my ODS ESCAPECHAR is "`".

 

So my issue was that I did not quote the argument (?):

 

SAS documentation:

 

ODS ESCAPECHAR Statement

 

Using the ODS ESCAPECHAR Functions

 

Here is the syntax for the ODS ESCAPECHAR functions:

escape-character{function-name <<arg-1 <arg-2<arg-n>>>> }

 

SUPER Function
^{SUPER <superscript-value>}
superscript-value
can be a numeric, alphanumeric, or a character value. This value is written above and immediately to one side of another character.

 

Always ecstatic and humbled to hear from you data _null_!

 

Thank you,

 

Kevin

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1114 views
  • 2 likes
  • 2 in conversation