# Instalar librerías si es necesario
if(!require(readxl)) install.packages("readxl")
if(!require(dplyr)) install.packages("dplyr")
if(!require(ggplot2)) install.packages("ggplot2")
if(!require(tidyr)) install.packages("tidyr")
if(!require(knitr)) install.packages("knitr")
if(!require(kableExtra)) install.packages("kableExtra")
library(readxl)
library(dplyr)
library(ggplot2)
library(tidyr)
library(knitr)
library(kableExtra)
# Cargar el archivo Excel
ruta <- "C:/Users/JOSEPEH/Desktop/Encuesta.xlsx"
data <- read_excel(ruta)
# Eliminar columnas innecesarias si las hubiera
data <- data %>% select(where(~!all(is.na(.))))
# Arreglar nombres de columnas (sin espacios ni tildes)
colnames(data) <- make.names(colnames(data))
# Vista general del dataset
kable(head(data), caption = "Vista previa de las primeras filas del dataset")| Id | Hora.de.inicio | Hora.de.finalización | Correo.electrónico | Nombre | X.Cuál.es.su.género. | X.Cuántos.años.tiene. | X.te.gusta.asistir.diariamente.al.colegio. | X.estudias.en.un.ambiente.agradable. | X.la.relación.entre.compañeros.la.consideras.buena. | X.las.personas.que.estan.a.cargo.te.ayudan.con.los.deberes. | X.Te.gusta.aprender.nuevas.cosas. | X..tu.maestras.es.divertida.a.la.hora.de.enseñar. | X.te.siente.motivado.para.aprender. | X.Crees.que.para.aprender.mejor.te.tienes.que.sentir.bien.en.el.aula. | X.Te.esfuerzas.diariamente.por.aprender. | X.es.importante.un.buen.trato.en.el.salón.de.clases. | X.te.gusta.jugar.mientras.aprendes. | En.general…cómo.te.sientes.con.tu.maestra.en.el.aula. | X.cuando.te.sientes.desmotivado.tu.maestra.trata.de.darte.animo. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2025-11-05 08:02:36 | 2025-11-05 08:08:59 | 146342@ucuauhtemoc.edu.mx | MARY LUZ MORENO CHAVEZ | Mujer | 5-10 | siempre | siempre | siempre | siempre | casi siempre | siempre | siempre | siempre | siempre | siempre; | siempre | 5 | siempre |
| 2 | 2025-11-05 08:13:16 | 2025-11-05 08:17:18 | 146342@ucuauhtemoc.edu.mx | MARY LUZ MORENO CHAVEZ | Hombre | 5-10 | casi siempre | siempre | casi siempre | casi siempre | siempre | casi siempre | siempre | casi siempre | casi siempre | casi siempre; | algunas veces | 5 | siempre |
| 3 | 2025-11-05 08:26:46 | 2025-11-05 08:32:25 | 146342@ucuauhtemoc.edu.mx | MARY LUZ MORENO CHAVEZ | Hombre | 5-10 | siempre | siempre | casi siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre; | siempre | 5 | siempre |
| 4 | 2025-11-05 08:39:34 | 2025-11-05 08:43:12 | 146342@ucuauhtemoc.edu.mx | MARY LUZ MORENO CHAVEZ | Mujer | NA | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre; | siempre | 5 | siempre |
| 5 | 2025-11-05 09:02:07 | 2025-11-05 09:05:05 | anonymous | NA | Mujer | 10-15 | casi siempre | casi siempre | casi siempre | algunas veces | casi siempre | siempre | siempre | siempre | siempre | siempre; | siempre | 5 | siempre |
| 6 | 2025-11-05 09:16:04 | 2025-11-05 09:18:22 | anonymous | NA | Hombre | 5-10 | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre | siempre; | siempre | 5 | casi siempre |
for (col in names(data)) {
cat("\n### Pregunta:", col, "\n")
# Calcular frecuencias y porcentajes
tabla <- as.data.frame(table(data[[col]]))
colnames(tabla) <- c("Respuesta", "Frecuencia")
tabla$Porcentaje <- round((tabla$Frecuencia / sum(tabla$Frecuencia)) * 100, 1)
# Mostrar tabla
kable(tabla, caption = paste("Distribución de respuestas para:", col)) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F)
# Gráfico de barras
print(
ggplot(tabla, aes(x = reorder(Respuesta, -Frecuencia), y = Frecuencia, fill = Respuesta)) +
geom_bar(stat = "identity", width = 0.7) +
geom_text(aes(label = paste0(Porcentaje, "%")), vjust = -0.4, size = 3.5) +
scale_fill_brewer(palette = "Pastel1") +
theme_minimal(base_size = 12) +
labs(title = paste("Distribución de respuestas -", col),
x = "Respuesta", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 30, hjust = 1),
plot.title = element_text(face = "bold", size = 14, hjust = 0.5),
legend.position = "none")
)
}##
## ### Pregunta: Id
##
## ### Pregunta: Hora.de.inicio
##
## ### Pregunta: Hora.de.finalización
##
## ### Pregunta: Correo.electrónico
##
## ### Pregunta: Nombre
##
## ### Pregunta: X.Cuál.es.su.género.
##
## ### Pregunta: X.Cuántos.años.tiene.
##
## ### Pregunta: X.te.gusta.asistir.diariamente.al.colegio.
##
## ### Pregunta: X.estudias.en.un.ambiente.agradable.
##
## ### Pregunta: X.la.relación.entre.compañeros.la.consideras.buena.
##
## ### Pregunta: X.las.personas.que.estan.a.cargo.te.ayudan.con.los.deberes.
##
## ### Pregunta: X.Te.gusta.aprender.nuevas.cosas.
##
## ### Pregunta: X..tu.maestras.es.divertida.a.la.hora.de.enseñar.
##
## ### Pregunta: X.te.siente.motivado.para.aprender.
##
## ### Pregunta: X.Crees.que.para.aprender.mejor.te.tienes.que.sentir.bien.en.el.aula.
##
## ### Pregunta: X.Te.esfuerzas.diariamente.por.aprender.
##
## ### Pregunta: X.es.importante.un.buen.trato.en.el.salón.de.clases.
##
## ### Pregunta: X.te.gusta.jugar.mientras.aprendes.
##
## ### Pregunta: En.general...cómo.te.sientes.con.tu.maestra.en.el.aula.
##
## ### Pregunta: X.cuando.te.sientes.desmotivado.tu.maestra.trata.de.darte.animo.