1
前一段时间,我看到Jayden从一个关于将回归方程加入到一个图中的答案,我发现这非常有用。但我不想显示R^2,所以我改变了代码了一下这个:ggplot in R:在图中加入回归方程
lm_eqn = function(m) {
l <- list(a = format(coef(m)[1], digits = 2),
b = format(abs(coef(m)[2]), digits = 2));
if (coef(m)[2] >= 0) {
eq <- substitute(italic(y) == a + b %.% italic(x))
} else {
eq <- substitute(italic(y) == a - b %.% italic(x))
}
as.character(as.expression(eq));
}
这成功地绘制“A + BX”或“A-BX”的情节,但没有取代a和b的实际系数。有谁知道如何解决这个问题?非常感谢!
杰登的回答是:
lm_eqn = function(m) {
l <- list(a = format(coef(m)[1], digits = 2),
b = format(abs(coef(m)[2]), digits = 2),
r2 = format(summary(m)$r.squared, digits = 3));
if (coef(m)[2] >= 0) {
eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,l)
} else {
eq <- substitute(italic(y) == a - b %.% italic(x)*","~~italic(r)^2~"="~r2,l)
}
as.character(as.expression(eq));
}
感谢。我添加了1,但后来得到如下错误信息:错误代替(italic(y)== a - b%。%italic(x),1): 指定了无效的环境。我怎样才能解决这个问题? – Bearbear 2014-11-24 19:55:54
@Bearbear,'substitute()'正在寻找列表的名字作为它的第二个参数。你不是把它称为“l”而不是“1”? – 2014-11-24 21:10:08
W,我写了“l”作为数字“1”,我犯了一个错误。现在它可以工作,非常感谢你。 – Bearbear 2014-11-24 21:58:38