[R] expression() and plot title

David Winsemius dwinsemius at comcast.net
Sat Aug 28 23:34:28 CEST 2010


On Aug 28, 2010, at 4:48 PM, Sancar Adali wrote:

> My function is like this
> sim.res<-gaussian_simulation(p=3, r=4, q=3, c=0.1,d=2,
> Wchoice     = "avg",
> pre.scaling = TRUE,
> oos         = TRUE,
> alpha       = NULL,
> n = 100, m = 100, nmc = 100)
>
> which is defined as
> gaussian_simulation <- function(p, r, q, c,
>                                 d           = p-1,
>                                 pprime1     = p+q,   # cca arguments
>                                 pprime2     = p+q,   # cca arguments
>                                 Wchoice     = "avg",
>                                 pre.scaling = TRUE,
>                                 oos         = TRUE,
>                                 alpha       = NULL,
>                                 n = 100, m = 100, nmc = 100)

Not much of a definition...no body???

> and I want to title the plot after I invoke the gaussian_simulation  
> function
> sim.res<-gaussian_simulation(p=3, r=4, q=3, c=0.1,d=2,
> Wchoice     = "avg",
> pre.scaling = TRUE,
> oos         = TRUE,
> alpha       = NULL,
> n = 100, m = 100, nmc = 100)
> plot(sim.res)
> title("p=3, r=4, q=3, c=0.1,d=2")

The following assumes you want the values of those parameters for the  
title to be picked up from the function's arguments, because the code  
you offer for the title is syntactically correct. You first need to re- 
read Bill Venables response regarding bquote which you show no signs  
of adapting,  and then you need to study:

?plotmath

... where you will learn the proper syntax for "="  ("==") and for  
comma-separated lists. You should not need the quotes inside the  
bquote call. The "~" (space) and "*" (no space) are syntactic  
separators inside expressions (in the limited scope of the plotmath  
perspective). The plotmath interpretation of these is not well  
described in the documentation (IMO). The help page could easily lead  
you to think that commas or spaces might be valid separators, or that  
list() was the same as list() in regular R, and it's only by repeated  
errors and reading worked examples on r-help that I have learned  
otherwise.

Consider this and apply lessons learned:

plot(1,1); p=3; r=4; q=3; c=0.1; d=2
title(main= bquote( list(p==.(p), r==.(r), q==.(q), c==.(c), d==. 
(d)) ) )

# you might get away with not using the "main" argument name, but I  
think it's bad practice.

-- 
David.
>
> On Sat, Aug 28, 2010 at 12:53 AM, Sancar Adali <sadali at gmail.com>  
> wrote:
>
>> What I want to do is put the arguments I supply to a function  into  
>> the
>> title of a plot
>> Say I'm calling func.1
>> func.1(a=4,b=4)
>> plot(....,..., title("a=4, b=4"))
>> If I'm calling func.1 with different arguments, I want the plot  
>> title to
>> reflect that.
>> A small detail is that func.1 might have an argument with a default  
>> like
>> c=a+b. I tried using expression but couldn't get it to work.
>>
>> Is there a way to do this using expression() ?
>>
>> --
>> Sancar Adali
>>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list