Substituting and quoting often causes confusion when the argument
is 'expression(...)'. The result is a call to the 'expression'
constructor function and needs to be evaluated with 'eval' to give
the actual expression object.What you want, I think, is
label <- substitute(expression(paste("A vaue for ",phi," = ",phival)), list(phival=phi.1))
plot(0 ~ 0, main = eval(label))
-roger
Sundar Dorai-Raj wrote:
Peter Dunn wrote:
Hi all
I am having troubles making sense of why code (1) below fails but code (2) below works.
Code (1):
> phi.1 <- 1
> plot(0 ~ 0,
+ main=substitute(paste("A vaue for ",phi," = ",phival), list(phival=phi.1)) )
Error in paste("The two deviances for ", phi, " = ", 2) : Object "phi" not found
But this works:
Code (2):
> plot(0,0,
+ main=substitute(paste("A value for ",phi," = ",phival), list(phival=phi.1)) )
>
It appears that if the plot command takes the formula style entry, the substitue/paste fails.
Is this documented as a feature (I couldn't find it if that is the case), or is it a bug? If it is a feature, it is a subtle difference between (1) and (2) that has potential to be quite frustrating!
Perhaps I should just upgrade to version 2.0.0, though I can't see anything in the Release Notes that might cause this.
Thanks.
P.
> version _ platform i686-pc-linux-gnu arch i686 os linux-gnu system i686, linux-gnu status major 1 minor 9.1 year 2004 month 06 day 21 language R
Peter,
Because in the first couple of lines of plot.formula we see this:
dots <- m$... dots <- lapply(dots, eval, data, parent.frame())
which for your case is equivalent to:
expr <- substitute(paste("A vaue for ",phi," = ",phival), list(phival=phi.1))
eval(expr)
which returns an error saying "phi" cannot be found which is the correct behaviour of eval. I'll let others comment on whether or not this is a bug in plot.formula but you can always get around it by calling title:
plot(0 ~ 0) title(main = expr)
which is exactly what your second example is doing in plot.default.
HTH,
--sundar
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
-- Roger D. Peng http://www.biostat.jhsph.edu/~rpeng/
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
