es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:

Tabla combinada de nombres de DV y nombres de modelos

¡Cualquier información o consejo sería apreciado!

Tags:  , ,

Answer

  1. Avatar for 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ón add_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


    Esto producirá una tabla con los nombres de los modelos y las variables dependientes combinadas:

    | | 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 |
    “`

Comments are closed.