[R] 'substitute' question

Stephen Tucker brown_emu at yahoo.com
Tue Mar 13 14:17:50 CET 2007


hi,

your first argument to substitute should be an expression, not a character
string (which the output of paste() will give you)

so...
# first assign to variable r2 (think you forgot to do that)
# in your example
r2 <- summary(lm1)$r.squared

# then to your label
R2text <- substitute(R^2==r2,list(r2=round(r2,2)))

# then you can annotate with text() as you did

alternatively, you can use 
R2text <- bquote(R^2==.(round(r2,2)))


--- remko duursma <remkoduursma at hotmail.com> wrote:

> 
> # I use this code to label a graph with the R2:
> 
> # graph
> x <- rnorm(100)
> y <- x + rnorm(100)
> lm1 <- lm(y~x)
> plot(x,y)
> 
> # label
> R2text <- substitute(paste(R^2," = ",r2),list(r2=r2))
> text(1,-3,R2text, col="red")
> 
> # i have modified this a bit, so that i have a vector with other labels, 
> each of which
> # will be labelled on the graph. Example:
> texts <- c("And the R2 is", R2text)
> x <- c(-2,-2)
> y <- c(2,1)
> for(i in 1:length(texts))text(x[i],y[i],texts[i],pos=4, col="blue")
> 
> # As you can see the label "R2 = 48.7" remains at "paste(R^2, " = ", 48.7)"
> # What to do?
> 
> 
> 
> Thanks for your help,
> 
> Remko
> 
> 
> 
> ..-~-.-~-.-~-.-~-.-~-.-~-.-~-.-~-.-~-
> Remko Duursma
> Post-doctoral researcher
> Dept. Forest Ecology
> University of Helsinki, Finland
> 
> _________________________________________________________________
> With tax season right around the corner, make sure to follow these few 
> simple tips.
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 



 
____________________________________________________________________________________
Finding fabulous fares is fun.



More information about the R-help mailing list