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.

Cómo crear una tabla de estadísticas resumidas por múltiples categorías (grupos) utilizando stargazer?

Me preguntaba si hay alguna manera de crear una tabla de estadísticas resumidas decente por múltiples categorías (grupos) usando stargazer(). Comencé con el siguiente código pero no estoy seguro de cómo avanzar desde aquí.


library(mtcars)
mtcars2 <- within(mtcars, { vs <- factor(vs, labels = c("V", "S")) am <- factor(am, labels = c("automático", "manual")) cyl <- ordered(cyl) gear <- ordered(gear) carb <- ordered(carb) }) summary1 = summary(mtcars2) stargazer(summary1)

Esto me da el siguiente error:

Error in names(x) <- value : el atributo 'names' [11] debe tener la misma longitud que el vector [3]

Usando stargazer() u otros paquetes comparables, quiero hacer una tabla de estadísticas resumidas categorizada por transmisión (am) y motor (vs) que se presente de la siguiente manera.

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear una tabla de estadísticas resumen por múltiples categorías usando stargazer(), esto es lo que puedes hacer:

    “`{r}
    library(mtcars)
    library(dplyr)
    library(stargazer)

    mtcars2 <- mtcars %>%
    mutate(vs = factor(vs, labels = c(“V”, “S”)),
    am = factor(am, labels = c(“automático”, “manual”)),
    cyl = ordered(cyl),
    gear = ordered(gear),
    carb = ordered(carb))

    summary1 <- mtcars2 %>%
    group_by(am, vs) %>%
    summarise(
    count = n(),
    mean_mpg = round(mean(mpg),2),
    sd_mpg = round(sd(mpg),2),
    min_mpg = min(mpg),
    max_mpg = max(mpg),
    mean_disp = round(mean(disp),2),
    sd_disp = round(sd(disp),2),
    min_disp = min(disp),
    max_disp = max(disp)
    ) %>%
    ungroup() %>%
    mutate(
    am = factor(am, levels = c(“automático”, “manual”)),
    vs = factor(vs, levels = c(“V”, “S”))
    )

    stargazer(summary1, type = “text”,
    title = “Tabla de estadísticas resumen por Transmisión (am) y Motor (vs)”,
    column.labels = c(“Cantidad”, “MPG (Media, Desviación Estándar, Mínimo, Máximo)”, “Desplazamiento (Media, Desviación Estándar, Mínimo, Máximo)”),
    covariate.labels = c(“Transmisión (am)”, “Motor (vs)”))
    “`

    Este código crea un nuevo dataframe summary1 con las estadísticas resumen requeridas por categorías, y luego usamos stargazer() para generar la tabla en el formato deseado.

    Las funciones group_by() y summarise() del paquete dplyr se utilizan para calcular las estadísticas resumen por categoría. La función ungroup() se utiliza para eliminar la agrupación, y la función mutate() se utiliza para cambiar el orden de los niveles de am y vs para que coincida con el formato de tabla deseado.

    Se llama a la función stargazer() con el argumento type = "text" para obtener una tabla basada en texto, y se especifica un title, column.labels, y covariate.labels para formatear la tabla según se desee.

Comments are closed.