[Rd] substitute() bug? (PR#10525)

Duncan Murdoch murdoch at stats.uwo.ca
Sat Dec 22 13:58:00 CET 2007


rossibarra at gmail.com wrote:
> The first four lines of code below work as normal.  The fifth thorows  
> an error: "Error in paste(theta[1], "=", 5) : object "theta" not found"
>
>
> x=rnorm(1000);
> bob=density(x);
> topp=5;
> plot(bob,xlab="", ylab="",  
> main=substitute(paste(theta[1],"=",topp),list(topp=topp)), type="l");
> plot(bob$y~bob$x,xlab="", ylab="",  
> main=substitute(paste(theta[1],"=",topp),list(topp=topp)), type="l");
>   
I'm not sure this is a bug, but if it is, it's in 
graphics:::plot.formula, not in substitute.  The problem is that 
substitute returns an unevaluated call, and plot.formula tries to 
evaluate it.  You can avoid the bug by wrapping the substitute call in 
as.expression.

The docs for plotmath say that it requires an expression, but "in most 
cases" language objects will be coerced to one:  it appears this is one 
of the cases where that is not true.

Duncan Murdoch
>
> Note that theta is not defined anywhere:
>
> ls()
>   [1] "bob"      "dline"    "dplot"    "dpt"      "less"     "lesseq"
>   [7] "more"     "moreeq"   "peak"     "peakline" "peakplot" "pop"
> [13] "topp"     "x"
>
>
> Version:
>   platform = i386-apple-darwin8.10.1
>   arch = i386
>   os = darwin8.10.1
>   system = i386, darwin8.10.1
>   status =
>   major = 2
>   minor = 6.1
>   year = 2007
>   month = 11
>   day = 26
>   svn rev = 43537
>   language = R
>   version.string = R version 2.6.1 (2007-11-26)
>
> Locale:
> C
>
> Search Path:
>   .GlobalEnv, package:stats, package:graphics, package:grDevices,  
> package:utils, package:datasets, package:methods,
>
> ____________
>
> Jeffrey Ross-Ibarra
> email: rossibarra at gmail.com
> web: rossibarra.googlepages.com
> Dept. Ecology and Evolutionary Biology
> University of California
> Irvine, Ca. 92697
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list