在r中绘制拟合线 fit\u bmi

在r中绘制拟合线 fit\u bmi,r,plot,line,lines,R,Plot,Line,Lines,复制的注释:您需要根据x值对x和y进行排序。您还应该学习使用公式体中不包含data.frame名称的公式,并使用数据参数作为dataframe名称。donvoter可能是对缺少数据示例的反应,但从绘制的图片中可以清楚地看出错误的来源 我在以前称为“comment”的文本中使用此代码测试了我的建议,它似乎提供了预期的结果: fit_bmi <- glm(df$genhlth_NC ~ poly(df$bmi_NC, 2, raw = TRUE)) plot(df$bmi_NC, df$gen

复制的注释:您需要根据x值对x和y进行排序。您还应该学习使用公式体中不包含data.frame名称的公式,并使用数据参数作为dataframe名称。donvoter可能是对缺少数据示例的反应,但从绘制的图片中可以清楚地看出错误的来源

我在以前称为“comment”的文本中使用此代码测试了我的建议,它似乎提供了预期的结果:

fit_bmi <- glm(df$genhlth_NC ~ poly(df$bmi_NC, 2, raw = TRUE))
plot(df$bmi_NC, df$genhlth_NC, col=rgb(red=0.2, green=0.2, blue=1.0, alpha=0.01))
lines(df$bmi_NC, predict(fit_bmi), col = 'red')

非常感谢。
fit_bmi <- glm(genhlth ~ poly(bmi, 2, raw = TRUE), data=dat)
plot(genhlth ~ bmi, data=dat)
lines(dat$bmi[order(dat$bmi)], predict(fit_bmi)[order(dat$bmi)],lwd=3, col = 'red')
dat <- data.frame(genhlth = sample(1:5, size=100, repl=TRUE,
                                   prob=c(.1, .2, .3, .2, .2) ),
                   bmi = rnorm(100,30,5) )
table(dat$genhlth)
#------------
 1  2  3  4  5 
 6 24 25 30 15