I'm trying to place the results of a regression (i.e., R2) in a graph, but can't seem to figure out how to call a variable from within an expression (it pastes the variable name).
Here is my code.
R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
text(92, 4, expression(paste(R^2, " = ", R2Val)), adj = 0, cex = 0.85)
Use bquote()
. Here is an example with dummy data:
set.seed(1)
DF <- data.frame(A = rnorm(100), B = rnorm(100))
mod <- lm(B ~ A, data = DF)
R2Val<-signif(summary(mod)$r.squared[1], 2)
The parts of the expression wrapped in .()
get evaluated in the environment, i.e. the value of R2Val
is substituted.
plot(B ~ A, data = DF)
text(1.5, 2, labels = bquote(R^2 == .(R2Val)), adj = 0, cex = 0.85)
Another potential solution is substitute
, which works similarly:
plot(B ~ A, data = DF)
text(1.5, 2, labels = substitute(R^2 == A, list(A = R2Val)), adj = 0, cex = 0.85)
I've managed to put it together using the substitute function.
R2Val<-signif(summary(sMod_pre90)$r.squared[1],2)
text(92,4,substitute(R^2~"="~R2Val),adj=0,cex=0.85)
All is good.
来源:https://stackoverflow.com/questions/4423130/use-a-variable-within-a-plotmath-expression