我一直在学习如何在R中绘制图形和曲线,并使用plot()
和curve()
函数和一组数据来绘制数据和曲线。但是,我不相信我使用的是最有效的方法。
我所做的是设置来自data.frame
的2个向量,然后我将一个对象(称为o
)分配给nls()
函数,如o<-nls(y~I(a*x^3)+I(b*x^2)+I(c*x)+d)
。我可以通过调用o
获取a
(b
,c
,d
,o
)的所有系数值。然后,我可以在绘制点之后将这些值的近似值插入curve()
函数。这有效,但我想知道是否有任何方法可以将o
直接插入curve
函数中,因此我不必重新键入每个系数?
答案 0 :(得分:1)
请注意,您的函数是多项式,因此其系数是线性的。无论如何,它与nls
和lm
的工作方式相同。指定适合的data.frame:
o <- lm(y ~ poly(x, 3, raw = TRUE), data = DF)
plot(y ~ x, data = DF)
curve(predict(o, newdata = data.frame(x = x)), add = TRUE)