How to create table of the regression results and export to MS word?

library(tidyverse)
library(janitor)
#> 
#> Attaching package: 'janitor'
#> The following objects are masked from 'package:stats':
#> 
#>     chisq.test, fisher.test
mpg
#> # A tibble: 234 x 11
#>    manufacturer model      displ  year   cyl trans drv     cty   hwy fl    class
#>    <chr>        <chr>      <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
#>  1 audi         a4           1.8  1999     4 auto~ f        18    29 p     comp~
#>  2 audi         a4           1.8  1999     4 manu~ f        21    29 p     comp~
#>  3 audi         a4           2    2008     4 manu~ f        20    31 p     comp~
#>  4 audi         a4           2    2008     4 auto~ f        21    30 p     comp~
#>  5 audi         a4           2.8  1999     6 auto~ f        16    26 p     comp~
#>  6 audi         a4           2.8  1999     6 manu~ f        18    26 p     comp~
#>  7 audi         a4           3.1  2008     6 auto~ f        18    27 p     comp~
#>  8 audi         a4 quattro   1.8  1999     4 manu~ 4        18    26 p     comp~
#>  9 audi         a4 quattro   1.8  1999     4 auto~ 4        16    25 p     comp~
#> 10 audi         a4 quattro   2    2008     4 manu~ 4        20    28 p     comp~
#> # ... with 224 more rows
model<-lm(cty~displ,mpg)
summary(model)
#> 
#> Call:
#> lm(formula = cty ~ displ, data = mpg)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.3109 -1.4695 -0.2566  1.1087 14.0064 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  25.9915     0.4821   53.91   <2e-16 ***
#> displ        -2.6305     0.1302  -20.20   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.567 on 232 degrees of freedom
#> Multiple R-squared:  0.6376, Adjusted R-squared:  0.6361 
#> F-statistic: 408.2 on 1 and 232 DF,  p-value: < 2.2e-16

Created on 2021-12-02 by the reprex package (v2.0.1)

Have a look at the package broom .
It has an easy way to pack the results in tables in the tibble format.
You can handle these tibbles (data.frames) in the standard way and e.g. select only certain columns.
See the example below.

I have no experience with creating Word documents from RMarkdown but it should work via RStudio with
File | New File | R Markdown | Word
I say 'should' because currently I can not knit the example file :worried:
Edit: I wrongly saved the document with the R extension instead of Rmd. Corrected this and now it works. Use e.g. knitr::kable(df1) to see the table in your document.

mpg <- ggplot2::mpg
model<-lm(cty~displ,mpg)
summary(model)
#> 
#> Call:
#> lm(formula = cty ~ displ, data = mpg)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.3109 -1.4695 -0.2566  1.1087 14.0064 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  25.9915     0.4821   53.91   <2e-16 ***
#> displ        -2.6305     0.1302  -20.20   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.567 on 232 degrees of freedom
#> Multiple R-squared:  0.6376, Adjusted R-squared:  0.6361 
#> F-statistic: 408.2 on 1 and 232 DF,  p-value: < 2.2e-16

library(broom)

df1 <-tidy(model)
print(df1) 
#> # A tibble: 2 x 5
#>   term        estimate std.error statistic   p.value
#>   <chr>          <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)    26.0      0.482      53.9 3.30e-133
#> 2 displ          -2.63     0.130     -20.2 4.74e- 53

df2 <- glance(model)
print(df2)
#> # A tibble: 1 x 12
#>   r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC
#>       <dbl>         <dbl> <dbl>     <dbl>    <dbl> <dbl>  <dbl> <dbl> <dbl>
#> 1     0.638         0.636  2.57      408. 4.74e-53     1  -552. 1109. 1120.
#> # ... with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
Created on 2021-12-02 by the reprex package (v2.0.1)

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.