[R] legend

David Winsemius dwinsemius at comcast.net
Wed Sep 22 22:01:26 CEST 2010


On Sep 22, 2010, at 3:03 PM, David Winsemius wrote:

>
> On Sep 22, 2010, at 2:58 PM, David Winsemius wrote:
>
>>
>> On Sep 22, 2010, at 1:39 PM, threshold wrote:
>>
>>>
>>> Hi,
>>> there is a function to plot survival curves:
>>>
>>> library(survival)
>>> plot.KM <- function(survival, x, x_cut.off, main='', label='')
>>> {
>>> plot(survfit(survival ~ I(x >= x_cut.off)), main=main)
>>> legend('bottomleft', c(expression(label >=  
>>> x_cut.off),expression(label <
>>> x_cut.off)))
>>> }
>>
>> This is untested because "survival" is not an object for the rest  
>> of us to survfit:
>>
>> plot.KM <- function(survival, x, x_cut.off, main='', label='')
>> {
>> #really kind of worried about whether this part will work, but  
>> perhaps you already have this running?
>> plot(survfit(survival ~ I(x >= x_cut.off)), main=main)
>> #####
>> ## perhaps something like this ... untested d/t no data example
>> legend('bottomleft',
>>      labels= bquote( .(label)>=.(x_cut.off),
>>      ^^no^^          .(label)<.(x_cut.off) ) )
> (labels is a argument to text() but not to legend().
>
>
> That should be :
> legend('bottomleft',
>      legend= bquote( .(label)>=.(x_cut.off),
>                      .(label)<.(x_cut.off) ) )

Or not:

I stripped out the suspect fitting and plotting with unreproducible  
code and worked on a more simple function and the above does not work:

plot.KM <- function(survival, x, x_cut.off, main='', label='')
{ plot(1~1, main=main);\
  L= list(bquote(.(label) >= .(x_cut.off)), bquote(.(label) < . 
(x_cut.off) ) )
legend('bottomleft', legend=sapply(L, as.expression))
}

The sapply strategy on a list of bquote()-ed expressions was suggested  
by Gabor Grothendieck to Thomas Lumley on rhelp in 2005 for just such  
an application.

http://finzi.psych.upenn.edu/R/Rhelp02/archive/58403.html
-- 
David.
>
>
>> }
>>
>> (And if you have made such a Surv object, perhaps naming it  
>> something other than the package name would be less confusing to us  
>> ordinary mortals.)
>>
>> -- David.
>>
>>
>>
>>>
>>> Now, I need to determine as the argument what appears in the  
>>> legend. I want
>>> plot.KM(survival, x, x_cut.off=0.5, main='', label='ABC')
>>> but what I get is ('label < x_cut.off') in legend instead of  
>>> 'ABC<0.5'.
>>> Symbol '>=' should be in mathematical form. will appreciate any  
>>> help.
>>>
>>> robert
>>>
>>
>
>
> David Winsemius, MD
> West Hartford, CT
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list