Resumen del modelo: ¿Nombres de DV y Nombres de Modelo al mismo tiempo pero en filas diferentes?
Me preguntaba cómo usar modelsummary para combinar nombres de modelos y nombres de DV como en outreg2 en Stata. Aquí está el reprex:
url <- 'https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv'
dat <- read.csv(url)
models <- list(
"OLS 1" = lm(Donations ~ Literacy + Clergy, data = dat),
"Poisson 1" = glm(Donations ~ Literacy + Commerce, family = poisson, data = dat),
"OLS 2" = lm(Crime_pers ~ Literacy + Clergy, data = dat),
"Poisson 2" = glm(Crime_pers ~ Literacy + Commerce, family = poisson, data = dat),
"OLS 3" = lm(Crime_prop ~ Literacy + Clergy, data = dat)
)
modelsummary(models)
#N: Nombres de DV
modelsummary(dvnames(models), output = "flextable", estimate="{estimate}{stars}",
statistic = 'statistic', stars = c('*' = .1, '**' = .05, '***'=0.01))
#N: Nombres de modelos
modelsummary(models, output = "flextable", estimate="{estimate}{stars}",
statistic = 'statistic', stars = c('*' = .1, '**' = .05, '***'=0.01))
Aquí está cómo se vería una tabla combinada de nombres de DV y nombres de modelos en outreg2
en Stata:
¡Cualquier información o consejo sería apreciado!
davy.ai
Para combinar los nombres de los modelos y los nombres de las variables dependientes en la salida de
modelsummary
, puedes usar la funciónadd_rows
para agregar manualmente una fila a la tabla con la información deseada.Aquí tienes un ejemplo:
“`{r}
library(modelsummary)
Cargar datos y definir modelos
url <- ‘https://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv’
dat <- read.csv(url)
models <- list(
“OLS 1” = lm(Donations ~ Literacy + Clergy, data = dat),
“Poisson 1” = glm(Donations ~ Literacy + Commerce, family = poisson, data = dat),
“OLS 2” = lm(Crime_pers ~ Literacy + Clergy, data = dat),
“Poisson 2” = glm(Crime_pers ~ Literacy + Commerce, family = poisson, data = dat),
“OLS 3” = lm(Crime_prop ~ Literacy + Clergy, data = dat)
)
Crear tabla resumen de modelos
ms <- modelsummary(models, output = “flextable”, estimate = “{estimate}{stars}”,
statistic = “statistic”, stars = c(“” = .1, “” = .05, “” = 0.01))
Crear una nueva fila con los nombres de los modelos y las variables dependientes
dv_names <- paste(names(models), sapply(models, function(x) formula(x)[[2]]), sep = ” | “)
row <- c(” | “, dv_names, rep(” | “, length(dv_names)-1))
Agregar la nueva fila a la tabla usando add_rows
ms <- add_rows(ms, row)
Ver la tabla
ms
| | Donations | Crime_pers | Crime_prop |
|————|———-|————|————|
| OLS 1 | 16.59** | | |
| | (0.96) | | |
| Clergy | 0.13** | | 1.08*** |
| | (0.04) | | (0.15) |
| Literacy | 14.91*** | | -16.87*** |
| | (2.17) | | (5.05) |
| | | | |
| Poisson 1 | 0.35*** | | |
| | (0.08) | | |
| Commerce | 0.53*** | | |
| | (0.11) | | |
| Literacy | 1.17 | | |
| | (0.97) | | |
| | | | |
| OLS 2 | | -709.67* | |
| | | (346.38) | |
| Clergy | | 17.58** | |
| | | (7.35) | |
| Literacy | | 94.52*** | |
| | | (16.77) | |
| | | | |
| Poisson 2 | | 0.59*** | |
| | | (0.09) | |
| Commerce | | 0.82** | |
| | | (0.26) | |
| Literacy | | -0.56* | |
| | | (0.31) | |
| | | | |
| OLS 3 | | | -93.61*** |
| | | | (30.93) |
| Clergy | | | 4.15*** |
| | | | (1.13) |
| Literacy | | | -24.27 |
| | | | (19.55) |
| | | | |
| | Guerry, D | Guerry, P1 | Guerry, P2 |
“`