所以在TA的帮助下,我们能够构建这个功能:
lm_eqn <- function(model){
mod_frame <- broom::tidy(model)
eqn_string <- sprintf("The response is equal to %.2f ", mod_frame$estimate[1])
model_terms <- function(i){
if(i == 1){return(",")}
paste(sprintf("+ %.2f %s", mod_frame$estimate[i], mod_frame$term[i]), model_terms(i-1))
}
r2 <- format(summary(model)$r.squared, digits = 3)
print(paste(eqn_string, model_terms(nrow(mod_frame)), "R2 =", r2))
}
问题在于它使用预测变量吐出回归方程,它们的类别与它们在任何模型中列出的方式以及类别如何在
中的顺序相反。例如,
lmod <- lm(uptake ~ Plant + Treatment + conc, data = CO2)
lm_eqn(lmod)
&#34;响应等于19.50 + 0.02浓度+ 1.91植物^ 11 + 0.55植物^ 10 + -9.07植物^ 9 + -3.28植物^ 8 + -2.04植物^ 7 + -0.04植物^ 6 + 4.31植物^ 5 + 2.34植物^ 4 + 4.67 Plant.C + -4.62 Plant.Q + -22.94 Plant.L,R2 = 0.736&#34;
注意它是如何从截距后的conc开始的,也是用植物11而不是plant.C(这是第一顺序)
此外,有没有办法为R2添加上标?