【发布时间】:2011-05-24 07:32:51
【问题描述】:
我正在尝试将回归结果(即 R2)放入图表中,但似乎无法弄清楚如何从表达式中调用变量(它会粘贴变量名称)。
这是我的代码。
R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
text(92, 4, expression(paste(R^2, " = ", R2Val)), adj = 0, cex = 0.85)
【问题讨论】:
我正在尝试将回归结果(即 R2)放入图表中,但似乎无法弄清楚如何从表达式中调用变量(它会粘贴变量名称)。
这是我的代码。
R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
text(92, 4, expression(paste(R^2, " = ", R2Val)), adj = 0, cex = 0.85)
【问题讨论】:
使用bquote()。这是一个带有虚拟数据的示例:
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)
包裹在.() 中的表达式部分在环境中求值,即替换R2Val 的值。
plot(B ~ A, data = DF)
text(1.5, 2, labels = bquote(R^2 == .(R2Val)), adj = 0, cex = 0.85)
另一个潜在的解决方案是substitute,它的工作原理类似:
plot(B ~ A, data = DF)
text(1.5, 2, labels = substitute(R^2 == A, list(A = R2Val)), adj = 0, cex = 0.85)
【讨论】:
我已经设法使用替代功能将它们组合在一起。
R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
text(92, 4, substitute(R^2 ~ "=" ~ R2Val), adj = 0, cex = 0.85)
一切都好。
【讨论】:
substitute 要替换哪些变量。看我的回答。
R2Val 在情节上按字面意思打印,而不是被解释。我认为?substitute 很清楚,除非您为env 提供一些东西,否则在此示例中不会进行参数替换。