如何让`geom_smooth()`理解`lm()`的结果中的公式?

时间:2018-02-24 11:34:56

标签: r ggplot2 expression call lm

我想使用geom_smooth()来显示任意拟合函数。

我已经生成了一个线性回归模型: fit <- lm(loss ~ hardness + strength, data = rubber)

我希望在带有调用的图表中使用此模型:

ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1])) + 
    geom_point() +
    geom_smooth(method = "lm", 
                formula = ????? something to do with *fit*, 
                col = "red")

使用formula参数来引用fit中使用的公式。

我可以通过评估fit$terms查看使用的公式,但如何将其传递给geom_smooth()

我见过的所有例子都明确写出了公式,但是我想把这个调用包装在一个函数中,以便与任意模型一起使用。

我尝试传递fit$termsstr(fit$terms)deparse(fit$terms) do.call(fit$terms)以及主题的各种变体。

1 个答案:

答案 0 :(得分:1)

看起来像是

formula = str(fit$call)

做我想要的。

感谢jaySf指针。