r - 如何将字符串公式传递给 R 的 lm 并查看摘要中的公式?

标签 r lm

在下面的 R session 中,summary(model)将公式显示为 model_str .我如何让它显示为 mpg ~ cyl + hp同时仍然能够通过字符串设置模型公式?

> data(mtcars)
> names(mtcars)
 [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear" "carb"
> model_str <- 'mpg ~ cyl + hp'
> model <- lm(model_str, data=mtcars)
> summary(model)

Call:
lm(formula = model_str, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.4948 -2.4901 -0.1828  1.9777  7.2934 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 36.90833    2.19080  16.847  < 2e-16 ***
cyl         -2.26469    0.57589  -3.933  0.00048 ***
hp          -0.01912    0.01500  -1.275  0.21253    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.173 on 29 degrees of freedom
Multiple R-squared:  0.7407,    Adjusted R-squared:  0.7228 
F-statistic: 41.42 on 2 and 29 DF,  p-value: 3.162e-09

最佳答案

使用 do.call以便 model_str在发送到 lm 之前被评估但报价mtcars所以它不是(否则会有一个巨大的输出显示 mtcars 中的实际值)。

do.call("lm", list(as.formula(model_str), data = quote(mtcars)))
给予:
Call:
lm(formula = mpg ~ cyl + hp, data = mtcars)

Coefficients:
(Intercept)          cyl           hp  
   36.90833     -2.26469     -0.01912  

关于r - 如何将字符串公式传递给 R 的 lm 并查看摘要中的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64487754/

相关文章:

r - 使用 rcpp 将 R 函数传递给 C 例程

r - 如何将简单的文本表达式转换为 R 中的数学表达式

r - 在管道 (%>%) 流 : Error of invalid term in model formula 内执行 lm()

r - 用 ggpmisc 显示 nls 模型的方程

删除任意网格线但保留 ggplot2 中各自的刻度线

r - 如何改进回归表的格式?

r - 从 R 中的本地 zip 文件安装包

r - 使用 lm() 和 scale() 的标准化回归系数不同于使用 lm.beta() 或 cor() 的回归系数

r - R中的多元回归样条

r - 在R中找到最佳线性模型的命令