Peter Dalgaard BSA wrote:

[EMAIL PROTECTED] writes:


I tried to use substitute in legend as follows:

pval <- 0.04
plot(0)
legend(1,0.5,substitute(hat(theta) == p, list(p = pval)))

For some reason the legend is repeated 3 times.

Any suggestions or is this a bug?


It's a bug. The code is looking at length(legend), but that is not the
number of legends when mode "call" objects are concerned. A workaround
is


legend(1,0.5,as.expression(substitute(hat(theta) == p, list(p = pval))))

Or more general:


 do.call("expression",
   list(substitute(hat(theta) == p, list(p = pval))))

This way you can include several substitute() calls within that list, to allow an expression of length > 1 which is frequently required for legends.


I think it is not really a bug, because this is documented, but inserting if(is.call(legend)) legend <- as.expression(legend) would not break anything, AFAICS.

Uwe Ligges

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to