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.
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 usamosstargazer()
para generar la tabla en el formato deseado.Las funciones
group_by()
ysummarise()
del paquetedplyr
se utilizan para calcular las estadísticas resumen por categoría. La funciónungroup()
se utiliza para eliminar la agrupación, y la funciónmutate()
se utiliza para cambiar el orden de los niveles deam
yvs
para que coincida con el formato de tabla deseado.Se llama a la función
stargazer()
con el argumentotype = "text"
para obtener una tabla basada en texto, y se especifica untitle
,column.labels
, ycovariate.labels
para formatear la tabla según se desee.