when we fit a linear model in like this,
x <- c(1.52, 1.6, 1.68, 1.75, 1.83)
y <- c(1.69, 1.74, 1.80, 1.93, 2.0)
fit <- lm(y ~ x)
summary(fit)
Output:
Call:
lm(formula = y ~ x)
Residuals:
1 2 3 4 5
0.021416 -0.012387 -0.036190 0.020482 0.006679
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.07633 0.19447 0.392 0.72093
x 1.04754 0.11579 9.047 0.00285 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0282 on 3 degrees of freedom
Multiple R-squared: 0.9646, Adjusted R-squared: 0.9529
F-statistic: 81.85 on 1 and 3 DF, p-value: 0.002852
So, what I want is a latex output of this "exact" table for Rmarkdown pdf output file. I do not want such output that is produced that changes the table or does not include some information from this table. As I mean, exactly this same output but in latex output.
An example output would be like this image but for single regrassion model and also contains all the information generated by summary(lm(y~x))
Note: I have used such libraties sjPlot, stargazer, texreg etc.
Currently I am using R version 4.1.2
CodePudding user response:
Using echo=FALSE produces what you want.
---
output: pdf_document
---
```{r, echo=FALSE}
x <- c(1.52, 1.6, 1.68, 1.75, 1.83)
y <- c(1.69, 1.74, 1.80, 1.93, 2.0)
fit <- lm(y ~ x)
summary(fit)
```
CodePudding user response:
I am a big fan of modelsummary for making tables
library(tidyverse)
library(modelsummary)
library(broom)
library(kableExtra)
df = tibble(x = c(1.52, 1.6, 1.68, 1.75, 1.83),
y = 1.69, 1.74, 1.80, 1.93, 2.0 )
fit <- lm(y ~ x , data = df)
tidy(fit)
modelsummary(fit,
output = "kableExtra")
Which will produce a very basic LaTeX table. However, if you want to group them by dvs you can do something like this where you estimate your models, then use broom, and then
data("iris")
iris = iris %>%
mutate(versicolor = ifelse(Species == "versicolor", 1, 0),
virginica = ifelse(Species == "virginica", 1, 0))
## pass it to tidy for each model
tidy(model1)
modelsummary(list( model1 , model2, model3,
model4, model5, model6),
output = "kableExtra") %>%
add_header_above(c(" " = 1 , "Petal Length" = 3 , "Sepal Width" = 3))
Which should give you close to what you are looking for! You may need to look at more options in kableExtra.


