# Cargar las bibliotecas necesarias
if (!require("ggplot2")) install.packages("ggplot2", dependencies=TRUE)
## Cargando paquete requerido: ggplot2
if (!require("dplyr")) install.packages("dplyr", dependencies=TRUE)
## Cargando paquete requerido: dplyr
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
if (!require("tidyr")) install.packages("tidyr", dependencies=TRUE)
## Cargando paquete requerido: tidyr
# Cargar las bibliotecas después de asegurarse de que están instaladas
library(ggplot2)
library(dplyr)
library(tidyr)
data <- read.csv(file.choose())
# Paso 1: Verificar los nombres exactos de las columnas
colnames(data) <- c("Marca_temporal", "Puntuacion", "Consentimiento", "Sexo", "Semestre", "Estudio",
"Organizacion_tiempo", "Reglas_lim_autonomia", "Decisiones_sin_consulta",
"Libertad_horarios", "Motivacion_estudio", "Decidir_materias",
"Libertad_organizar_estudio", "Facilidad_ritmo_estudio", "Elegir_como_estudiar",
"Factores_lim_autonomia", "Falta_independencia_decisiones",
"Capacidad_desafios", "Confianza_capacidades",
"Dependencia_academicas", "Superar_desafios_con_control",
"Falta_independencia_decisiones_2",
"Seguridad_clase", "Autonomia_aprendizaje",
"Retroalimentacion_profesores", "Motivacion_mejorar_calificaciones")
# Paso 2: Transformar los datos a formato largo usando los nombres correctos
data_largo <- data %>%
pivot_longer(cols = Organizacion_tiempo:Motivacion_mejorar_calificaciones,
names_to = "Pregunta", values_to = "Respuesta")
# Asegurarse de que la columna 'Respuesta' es numérica
data_largo$Respuesta <- as.numeric(data_largo$Respuesta)
# Paso 3: Asegurarse de que la columna 'Respuesta' es numérica
data_largo$Respuesta <- as.numeric(data_largo$Respuesta)
# Crear gráficos de pastel con porcentajes
# Lista de preguntas
preguntas <- unique(data_largo$Pregunta)
# Función para etiquetar porcentajes
etiquetas_porcentajes <- function(df) {
df %>%
group_by(Respuesta) %>%
summarise(Conteo = n()) %>%
mutate(Porcentaje = round(Conteo / sum(Conteo) * 100, 1),
Etiqueta = paste0(Porcentaje, "%"))
}
# Iterar sobre cada pregunta para crear gráficos de pastel
for (pregunta in preguntas) {
data_pregunta <- data_largo %>% filter(Pregunta == pregunta)
# Calcular los porcentajes
data_porcentajes <- etiquetas_porcentajes(data_pregunta)
# Crear gráfico de pastel
p <- ggplot(data_porcentajes, aes(x = "", y = Conteo, fill = factor(Respuesta))) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = Etiqueta), position = position_stack(vjust = 0.5)) +
scale_fill_brewer(palette = "Set3") +
labs(title = paste("Distribución de Respuestas para", pregunta),
fill = "Respuesta") +
theme_void()
print(p)
}



















