Limpieza de datos con RStudio: una guía práctica

Autor/a
Afiliación

Cristopher Lino-Cruz

Universidad Peruana de Ciencias Aplicadas

Fecha de publicación

19 noviembre, 2025

1 Introducción

Esta guía tiene como objetivo enseñar a estudiantes cómo limpiar y preparar bases de datos descargadas desde Google Forms, utilizando el lenguaje de programación R. En este caso particular, trabajaremos con datos relacionados al engagement académico, capital emocional y autoeficacia académica de estudiantes. Aprenderás a cargar datos, renombrar variables, recodificar respuestas tipo Likert, y exportar tu base lista para el análisis.

2 Configuración inicial

2.1 Limpiar el entorno de trabajo

Este comando elimina todos los objetos existentes en tu entorno de trabajo, asegurando que no interfieran con el nuevo análisis.

rm(list = ls())

2.2 Establecer el directorio de trabajo

Aquí definimos la carpeta donde están nuestros archivos. Es importante que el archivo Datos form.xlsx esté dentro de esta carpeta.

Importante

💡 Importante: Cuando copies una ruta desde el explorador de Windows, recuerda cambiar las barras \\ por /.

# setwd("D:/07 UPC/2025-2/02 Investigación científica/Limpieza_datos")  # Cambiar por tu ruta

3 Cargar librerías necesarias

Antes de cargar, es importante instalarlas previamente. La instalación solo se hace una vez. En el caso de ustedes deben ejecutar quitando el #

Importante

💡 Recuerda que las librerías se instalan solo una vez en tu computadora. No es necesario volver a instalarlas cada vez que trabajes con R.

3.1 Instalación desde CRAN

Las siguientes librerías se instalan directamente desde CRAN (Comprehensive R Archive Network):

#install.packages("tidyverse")
#install.packages("dplyr")
#install.packages("readxl")
#install.packages("rlang")
#install.packages("readr")
#install.packages("openxlsx")

3.2 Instalación de ThesiStats desde GitHub

La librería ThesiStats no se encuentra en CRAN, por lo que debe instalarse desde GitHub. Si necesitas instalarla, descomenta y ejecuta el siguiente código:

#if (!require("devtools")) {
#  install.packages("devtools")
#}
#devtools::install_github("jventural/ThesiStats")

Una vez instalada todas las librerías, ahora cargamos para proceder con su ejecución. Estas librerías permiten trabajar con datos, leer archivos de Excel, manipular variables y aplicar funciones estadísticas y de limpieza.

library(dplyr)
library(readxl)
library(ThesiStats)
library(readr)
library(openxlsx)

4 Cargar y preparar la base de datos

4.1 Cargar archivo

Se carga la base de datos exportada desde Google Forms. Usamos la función read_excel() para leer el archivo Datos form.xlsx. A ese archivo le llamaremos df, que sería un abreviado de data frame.

df <- read_excel("Datos form.xlsx")

4.2 Visualizar nombres originales de columnas

La función labels() nos permite visualizar los nombres originales de las columnas tal como aparecen en la base de datos descargada de Google Forms. Este paso es útil para identificar cuáles corresponden a los datos sociodemográficos (por ejemplo: “¿Qué edad tiene usted”, “Sexo”, “Departamento”, etc).

labels(df)
[[1]]
  [1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12" 
 [13] "13"  "14"  "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24" 
 [25] "25"  "26"  "27"  "28"  "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36" 
 [37] "37"  "38"  "39"  "40"  "41"  "42"  "43"  "44"  "45"  "46"  "47"  "48" 
 [49] "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"  "57"  "58"  "59"  "60" 
 [61] "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"  "71"  "72" 
 [73] "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84" 
 [85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96" 
 [97] "97"  "98"  "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108"
[109] "109" "110" "111" "112" "113" "114" "115" "116" "117" "118" "119" "120"
[121] "121" "122" "123" "124" "125" "126" "127" "128" "129" "130" "131" "132"
[133] "133" "134" "135" "136" "137" "138" "139" "140" "141" "142" "143" "144"
[145] "145" "146" "147" "148" "149" "150" "151" "152" "153" "154" "155" "156"
[157] "157" "158" "159" "160" "161" "162" "163" "164" "165" "166" "167" "168"
[169] "169" "170" "171" "172" "173" "174" "175" "176" "177" "178" "179" "180"
[181] "181" "182" "183" "184" "185" "186" "187" "188" "189" "190" "191" "192"
[193] "193" "194" "195" "196" "197" "198" "199" "200" "201" "202" "203" "204"
[205] "205" "206" "207" "208" "209" "210" "211" "212" "213" "214" "215" "216"
[217] "217" "218" "219" "220" "221" "222" "223" "224"

[[2]]
 [1] "Marca temporal"                                                                                                                                                                 
 [2] "¿Acepta participar en la presente investigación?"                                                                                                                               
 [3] "1. Edad (solo número)"                                                                                                                                                          
 [4] "2. Sexo"                                                                                                                                                                        
 [5] "3. Departamento"                                                                                                                                                                
 [6] "4. ¿Cómo calificarías tu rendimiento académico?"                                                                                                                                
 [7] "5. Carrera profesional"                                                                                                                                                         
 [8] "6. Ciclo académico"                                                                                                                                                             
 [9] "7. Su promedio de notas el semestre pasado fue:"                                                                                                                                
[10] "8. ¿Has desaprobado algún curso el semestre pasado?"                                                                                                                            
[11] "9. Ocupación"                                                                                                                                                                   
[12] "10. Modalidad de estudio en el presente semestre"                                                                                                                               
[13] "11. ¿En qué tipo de colegio estudiaste antes de ingresar a la universidad?"                                                                                                     
[14] "12. ¿Cuál es tu expectativa de rendimiento académico para este semestre?"                                                                                                       
[15] "13. ¿Has pensado en algún momento abandonar tus estudios universitarios?"                                                                                                       
[16] "1. Mis tareas como estudiante me hacen sentir lleno de energía."                                                                                                                
[17] "2.  Creo que mi carrera tiene significado."                                                                                                                                     
[18] "3.  El tiempo “pasa volando” cuando realizo mis tareas como estudiante."                                                                                                        
[19] "4.  Me siento fuerte y vigoroso cuando estoy estudiando o voy a clases."                                                                                                        
[20] "5.  Estoy entusiasmado con mi carrera."                                                                                                                                         
[21] "6.  Olvido todo lo que me pasa alrededor de mí cuando estoy en mis estudios."                                                                                                   
[22] "7.  Mis estudios me inspiran cosas nuevas."                                                                                                                                     
[23] "8.  Cuando me levanto por la mañana me apetece ir a clase o estudiar."                                                                                                          
[24] "9.  Soy feliz cuando estoy haciendo tareas relacionadas con mis estudios."                                                                                                      
[25] "10.  Estoy orgulloso de hacer esta carrera."                                                                                                                                    
[26] "11.  Estoy inmerso en mis estudios."                                                                                                                                            
[27] "12.  Puedo seguir estudiando durante largos periodos de tiempo."                                                                                                                
[28] "13.  Mi carrera es retadora para mí."                                                                                                                                           
[29] "14.  Me “dejo llevar” cuando realizo mis tareas como estudiante."                                                                                                               
[30] "15.  Soy muy “resistente” para afrontar mis tareas como estudiante."                                                                                                            
[31] "16.  Es difícil para mí separarme de mis estudios."                                                                                                                             
[32] "17.  En mis tareas como estudiante no paro incluso si no me encuentro bien."                                                                                                    
[33] "1. Los exámenes me producen una tensión excesiva."                                                                                                                              
[34] "2. Creo que me esfuerzo mucho para lo poco que consigo."                                                                                                                        
[35] "3.  Me siento bajo de ánimo, como triste, sin motivo aparente."                                                                                                                 
[36] "4.  Hay días en que no duermo bien a causa del estudio."                                                                                                                        
[37] "5.  Tengo dolor de cabeza y otras molestias que afectan a mi rendimiento académico."                                                                                            
[38] "6.  Hay días en que noto más la fatiga y me falta energía para concentrarme."                                                                                                   
[39] "7.  Me siento emocionalmente agotado por mis estudios."                                                                                                                         
[40] "8.  Me siento cansado al final de la jornada de estudio."                                                                                                                       
[41] "9.  Estudiar pensando en los exámenes me produce estrés."                                                                                                                       
[42] "10.  Me falta tiempo y me siento desbordado por los estudios."                                                                                                                  
[43] "1. Me considero lo suficientemente capacitado para enfrentarme con éxito a cualquier tarea académica."                                                                          
[44] "2. Pienso que tengo capacidad para comprender bien y con rapidez una materia."                                                                                                  
[45] "3. Me siento con confianza para abordar situaciones que ponen a prueba mi capacidad académica."                                                                                 
[46] "4. Tengo la convicción de que puedo obtener buenos resultados en los exámenes."                                                                                                 
[47] "\n5. No me importa que los profesores sean exigentes y duros, pues confío en mi propia capacidad académica."                                                                    
[48] "6. Creo que soy una persona capacitada y competente en mi vida académica."                                                                                                      
[49] "\n7. Si me lo propongo, creo que tengo la suficiente capacidad para obtener un buen record académico."                                                                          
[50] "\n8. Pienso que puedo pasar los cursos con bastante facilidad e incluso sacar buenas notas."                                                                                    
[51] "9. Creo que estoy preparado/a y capacitado/a para conseguir muchos éxitos académicos."                                                                                          
[52] "1.  Me siento satisfecho con mis estudios actuales."                                                                                                                            
[53] "2.  En su mayor parte, estoy disfrutando de las actividades y tareas de mis cursos."                                                                                            
[54] "3.  En general, estoy satisfecho con mi vida académica."                                                                                                                        
[55] "4. Disfruto del nivel de desafío intelectual que presentan mis cursos."                                                                                                         
[56] "5. Me gusta lo mucho que he aprendido en mis clases."                                                                                                                           
[57] "1.  Actualmente estoy satisfecho con mi rendimiento."                                                                                                                           
[58] "2.  En general, actualmente estoy satisfecho con mis estudios."                                                                                                                 
[59] "3.  Actualmente estoy satisfecho con mi manera de estudiar."                                                                                                                    
[60] "1.  Poco interés o placer en hacer cosas."                                                                                                                                      
[61] "2.  Se ha sentido decaído(a), deprimido(a) o sin esperanzas."                                                                                                                   
[62] "3.  Ha tenido dificultad para quedarse o permanecer dormido(a), o ha dormido demasiado."                                                                                        
[63] "4.  Se ha sentido cansado(a) o con poca energía."                                                                                                                               
[64] "5.  Sin apetito o ha comido en exceso."                                                                                                                                         
[65] "6.  Se ha sentido mal con usted mismo(a) —o que es un fracaso o que ha quedado mal con usted mismo(a) o con su familia."                                                        
[66] "7.  Ha tenido dificultad para concentrarse en ciertas actividades, tales como leer el periódico o ver la televisión."                                                           
[67] "8.  ¿Se ha movido o hablado tan lento que otras personas podrían haberlo notado? O, por el contrario, ¿se ha sentido muy inquieto(a) o agitado(a), moviéndose más de lo normal?"
[68] "9.  Pensamientos de que estaría mejor muerto(a) o de lastimarse de alguna manera."                                                                                              
[69] "1. Te has sentido muy nervioso/a, angustiado/a o con los nervios de punta."                                                                                                     
[70] "2.  No has podido dejar de preocuparte o controlar la preocupación."                                                                                                            
[71] "3. Te has preocupado demasiado por diferentes cosas."                                                                                                                           
[72] "4. Has tenido dificultad para relajarte."                                                                                                                                       
[73] "5. Has estado tan inquieto/a que te ha sido difícil permanecer sentado/a tranquilo/a."                                                                                          
[74] "6. Te has molestado o irritado fácilmente."                                                                                                                                     
[75] "7. Has sentido miedo como si algo terrible pudiera pasar."                                                                                                                      

4.3 Renombrar columnas

Una vez identificadas, vamos a renombrar esas columnas utilizando la función rename_columns() de la librería ThesiStats. Para ello:

  • En el argumento new_names debes colocar los nuevos nombres que deseas asignar a las variables. El orden debe coincidir exactamente con el de las columnas originales.

  • En el argumento columns debes indicar el rango de columnas que deseas renombrar (por ejemplo: 1:15 si son las primeras 15 columnas de la ficha sociodemográfica).

Importante

💡 Solo se deben renombrar las columnas sociodemográficas, no las de las escalas tipo Likert aún.

En este caso, estamos renombrando las primeras 15 columnas con información sociodemográfica y académica de los estudiantes.

df_new <- rename_columns(df = df,
                         new_names = c("Marca", "Acepto", "Edad", "Sexo",
                                       "Departamento", "Rendimiento_acad", "Carrera", "Ciclo", "Promedio_nota", "Desaprobado", "Ocupación", "Modalidad_estudio", "Tipo_colegio", "Expectativa", "Abandonar_estudio"),
                         columns = 1:15)

4.4 Filtrar y limpiar variables

Se conservan solo a los participantes que dieron su consentimiento con la función filter. Además, se asegura que solo se incluyan participantes mayores de 18 años. Finalmente, con la función select seleccionamos las columnas de importancia para el análisis.

df_filter <- df_new %>%
  filter(Acepto == "Sí, acepto.") %>%  # Mantiene solo quienes aceptaron participar
  filter(Edad >= 18) %>%  # Mantiene solo participantes mayores de 18 años
  select(-Marca, -Acepto)  # Elimina columnas innecesarias

5 Renombrar ítems de escalas

Se renombran automáticamente los ítems de las escalas con prefijos. Esto facilita su identificación y análisis posterior. En este caso, trabajamos con tres escalas:

  • UWES (Utrecht Work Engagement Scale - Versión Student): 17 ítems
  • ECE (Escala de Capital Emocional): 10 ítems
  • EAA (Escala de Autoeficacia Académica): 9 ítems

En el argumento inicio se debe colocar la expresión completa de su primer ítem. Y en el argumento final se coloca la expresión del último ítem.

df_renombrado <- rename_items3(df = df_filter,
                              prefix1 = "UWES",
                              prefix2 = "ECE",
                              prefix3 = "EAA",
                              inicio = "1. Mis tareas como estudiante me hacen sentir lleno de energía.",
                              final = "9. Creo que estoy preparado/a y capacitado/a para conseguir muchos éxitos académicos.",
                              n_items1 = 17,
                              n_items2 = 10,
                              n_items3 = 9)

5.1 Seleccionar solo las variables de interés

Una vez renombrados los ítems, seleccionamos solo las columnas que usaremos en nuestro análisis, desde la variable de edad hasta el último ítem de la escala.

df_renombrado <- df_renombrado %>% select(Edad:EAA9)

6 Explorar valores únicos de las escalas

Antes de recodificar, es importante verificar qué valores tiene cada escala. Esto nos ayuda a identificar cómo aparecen las respuestas en la base de datos original.

unique(df_renombrado$UWES1)
[1] "Regularmente"    "Bastantes veces" "Algunas veces"   "Siempre"        
[5] "Casi nunca"      "Nunca"           "Casi siempre"   
unique(df_renombrado$ECE1)
[1] "Con frecuencia" "Algunas veces"  "Siempre"        "Pocas veces"   
[5] "Raras veces"   
unique(df_renombrado$EAA1)
[1] "Algunas veces"   "Bastantes veces" "Siempre"         "Nunca"          

7 Codificar respuestas tipo Likert

7.1 Definir diccionarios de recodificación

Se define cómo convertir las respuestas en texto a valores numéricos. Para ello debemos guiarnos de la expresión de las alternativas de respuesta de nuestras escalas y el puntaje de cada una de ellas.

Escala UWES: 7 opciones de respuesta (0 a 6)

Alternativa_1 <- c("Nunca" = 0,
                   "Casi nunca" = 1,
                   "Algunas veces" = 2,
                   "Regularmente" = 3,
                   "Bastantes veces" = 4,
                   "Casi siempre" = 5,
                   "Siempre" = 6)

Escala ECE: 5 opciones de respuesta (1 a 5)

Alternativa_2 <- c("Raras veces" = 1,
                   "Pocas veces" = 2,
                   "Algunas veces" = 3,
                   "Con frecuencia" = 4,
                   "Siempre" = 5)

Escala EAA: 4 opciones de respuesta (1 a 4)

Alternativa_3 <- c("Nunca" = 1,
                   "Algunas veces" = 2,
                   "Bastantes veces" = 3,
                   "Siempre" = 4)

7.2 Aplicar la recodificación

Esta parte reemplaza el texto por números. Por ejemplo: “Siempre” se transforma en 6 para la escala UWES, en 5 para la escala ECE, y en 4 para la escala EAA.

Tip

💡 La función across() nos permite aplicar transformaciones a múltiples columnas a la vez, haciendo el código más eficiente y legible.

df_final <- df_renombrado %>%
  mutate(across(UWES1:UWES17, ~ unname(Alternativa_1[.]))) %>%
  mutate(across(ECE1:ECE10, ~ unname(Alternativa_2[.]))) %>%
  mutate(across(EAA1:EAA9, ~ unname(Alternativa_3[.])))

8 Agregar un ID a cada participante (opcional)

Si se desea identificar a cada caso con un número único, se puede agregar una columna de ID. Esta opción está comentada en el código original, pero la dejamos disponible para que la uses si lo consideras necesario.

# df_final <- df_final %>%
#   mutate(ID = row_number()) %>%
#   relocate(ID, .before = 1)

9 Guardar la base final

Finalmente, se guarda la base de datos limpia como un archivo Excel para su análisis posterior. Este archivo contiene todas las variables sociodemográficas y los ítems de las tres escalas ya codificados numéricamente.

openxlsx::write.xlsx(df_final, file = "df_final.xlsx", overwrite = T)

10 Resumen del flujo de trabajo

En resumen, durante esta sesión hemos:

  1. ✓ Cargado los datos desde Google Forms
  2. ✓ Renombrado las variables sociodemográficas para hacerlas más manejables
  3. ✓ Filtrado los datos para incluir solo participantes que dieron consentimiento y son mayores de 18 años
  4. ✓ Renombrado los ítems de las tres escalas con prefijos claros
  5. ✓ Recodificado las respuestas de texto a valores numéricos
  6. ✓ Exportado la base limpia para análisis posterior

Esta base de datos está lista para proceder con análisis estadísticos, cálculo de puntuaciones totales de escala, y otras exploraciones analíticas.