Práctica 2. Bases de Datos

Introducción

Un lenguaje de programación es un idioma formal que, a través de un conjunto de reglas sintácticas y semánticas, nos permite comunicarnos con una computadora y darle instrucciones precisas. Como señalan Aho et al. (2006) en su obra de referencia Compilers: Principles, Techniques, and Tools, estos lenguajes establecen un puente de comunicación efectivo entre humanos y máquinas. Gracias a ellos, es posible desarrollar software, automatizar procesos complejos y, de manera crucial para nuestra área, realizar análisis de datos avanzados.

Dentro del universo de la programación, R destaca como un lenguaje y entorno de software libre enfocado específicamente en el análisis estadístico, el modelado de datos y la visualización gráfica. Fue desarrollado originalmente por Ross Ihaka y Robert Gentleman en la Universidad de Auckland y, desde entonces, su potencia y flexibilidad lo han convertido en una herramienta indispensable en campos como la bioestadística, la genética cuantitativa y, por supuesto, la medicina veterinaria y zootecnia.

Objetivo

Al finalizar esta práctica, el alumno será capaz de estructurar correctamente un conjunto de datos en Microsoft Excel y realizar su importación de manera exitosa en RStudio, dejando la información lista para su posterior análisis estadístico.

Herramientas Necesarias

Para completar esta práctica, asegúrate de tener instalados los siguientes programas y paquetes.

-Microsoft Excel: Lo utilizaremos para crear y organizar nuestra hoja de datos inicial. -RStudio: Será nuestro entorno de trabajo principal. Dentro de RStudio, necesitaremos los siguientes paquetes específicos para manejar archivos de Excel:

-readxl: Permite leer datos directamente desde archivos de Excel (.xls y .xlsx). -writexl: Permite exportar y guardar nuestros datos de R a un archivo de Excel.

Si aún no tienes instalados estos paquetes en R, puedes hacerlo ejecutando el siguiente comando en la consola de RStudio (solo se hace una vez):

install.packages("readxl")
install.packages("writexl")

Una vez instalados, recuerda que para usarlos en cada sesión de RStudio, primero debes cargarlos en tu entorno con el comando:

library(readxl)
library(writexl)

Desarrollo de la Práctica

Paso 1: Creación del archivo de datos en Excel

El fundamento de cualquier análisis estadístico es un conjunto de datos bien estructurado. La estructura más común y útil es la de una tabla, donde cada fila representa una unidad de observación (por ejemplo, un animal, una granja o una muestra) y cada columna representa una variable o medición específica registrada para esa unidad (como el peso, la edad o el tratamiento recibido).

En medicina veterinaria, los datos provienen de fuentes muy diversas, por lo que organizarlos correctamente desde el principio es un paso crítico. Para esta práctica, simularemos un caso real: crearemos una hoja de cálculo en Microsoft Excel con información básica sobre un grupo de equinos.

Vamos a crear una tabla con datos de un grupo de equinos. Esta será nuestra base de datos para la práctica.

Abre Microsoft Excel y crea una hoja de cálculo nueva. Copia y pega la siguiente tabla. Asegúrate de que la primera fila contenga los nombres de las columnas (las variables).

  # Nombre           | Padre     | Madre         | Sexo   | Cruz (cm) | Peso (Kg)| Enc (cm) | Edad (años)|
  #------------------|-----------|---------------|--------|-----------|----------|----------|------------|
  # Mancuil          | -         | -             | Macho  | 171       | 500      | 60       | 18         |
  # Anovius          | -         | -             | Macho  | 187       | 374      | 50       | 9          |
  # Yaqui Impress    | -         | -             | Hembra | 160       | 400      | 48       | 8          |
  # Jilguerito       | Anovius   | Yaqui Impress | Macho  | 130       | 219      | 38       | 0.7        |
  # Cachetón         | -         | -             | Macho  | 169       | 259      | 49       | 7          |
  # Alazán           | Cachetón  | -             | Macho  | 143       | 200      | 39       | 7          |
  # Rojo             | -         | -             | Macho  | 159       | 342      | 43       | 2          |
  # Terry            | -         | -             | Macho  | 144       | 220      | 42       | 0.11       |
  # Double Lover     | -         | -             | Hembra | 154       | 358      | 46       | 5          |
  # Haza Lacy Look   | -         | -             | Hembra | 172       | 417      | 50       | 6          |

Guarda el archivo: Guarda el libro de Excel en una carpeta de fácil acceso (como tu Escritorio o una carpeta de la materia) con el nombre datos_equinos.xlsx. Usar el formato .xlsx es la práctica moderna y la recomendada al trabajar con el paquete readxl.

Paso 2: Importar el Archivo de Datos en RStudio

Ahora que tenemos nuestros datos en un archivo de Excel (.xlsx), el siguiente paso es “leerlos” o importarlos a RStudio para poder trabajar con ellos. Esto significa cargar el contenido del archivo en la memoria de R y asignarlo a un objeto (en nuestro caso, un data frame).

2.1. Entendiendo la “Ruta” del Archivo Para que R pueda encontrar tu archivo, necesitas darle su “dirección” exacta en tu computadora. A esta dirección se le llama ruta (o path en inglés).

¿Cómo encontrar la ruta? Busca tu archivo datos_equinos.xlsx. Haz clic derecho sobre él y selecciona Propiedades (en Windows) o Obtener información (en Mac). Ahí verás su ubicación. Cópiala. ¡Punto CRÍTICO! Windows usa barras invertidas (), pero en R siempre debes usar la barra normal (/). Ejemplo en Windows: C:se convierte en C:/Users/alumno/Desktop Ejemplo en Mac: /Users/alumno/Desktop (esta ya usa la barra correcta).

2.2. Importación mediante Código Este es el método más profesional y reproducible. Lo haremos en un chunk de R.

2.2.1. Cargar el paquete necesario

Nos aseguramos de que ‘readxl’ esté activo para usar sus funciones. (Ya se realizó en pasos anteriores)

library(readxl)

2.2.2. Definir la ruta del archivo

¡MODIFICA ESTA LÍNEA CON TU PROPIA RUTA! Aquí es donde le dices a R la dirección exacta de tu archivo.

ruta_del_archivo <- "C:/Users/alumno/Desktop/datos_equinos.xlsx"

2.2.3. Leer el archivo y guardarlo en un objeto

Usamos la función read_excel() y le pasamos la ruta que acabamos de definir. El contenido se guardará en un objeto que llamaremos ‘equinos_df’.

equinos_df <- read_excel("C:/Users/iazda/Downloads/Programa RPubs/equinos.xlsx")

2.2.4. Verificar que los datos se cargaron bien

La función head() nos muestra las primeras 6 filas de nuestra nueva tabla.

print(head(equinos_df))

2.2.5. Exploración Básica de los Datos

Una vez importados, es buena práctica revisar que todo esté en orden.

Ver las últimas 6 filas del archivo importado

print(tail(equinos_df))

Ver los nombres de todas las columnas (variables)

print(colnames(equinos_df))

Obtener un resumen estructural de todo el objeto

print(str(equinos_df))

Nota sobre el Directorio de Trabajo (getwd() y setwd())

getwd() (Get Working Directory): Te dice en qué carpeta de tu computadora está “situado” R en este momento. Si intentas leer un archivo sin especificar una ruta completa, R lo buscará ahí.

setwd() (Set Working Directory): Cambia la carpeta donde R está “situado”. ¿Por qué no lo usamos aquí? Aunque puede parecer más fácil cambiar el directorio a la carpeta donde están tus datos, hace que tu código sea menos portable. Si alguien (o tú mismo en otra computadora) ejecuta tu script, fallará si no tiene exactamente la misma estructura de carpetas. Usar la ruta completa, como hicimos arriba, es una práctica mucho más segura y robusta.

Paso 3: Modificar y Exportar los Datos

Una de las grandes ventajas de R es la facilidad con la que podemos transformar y enriquecer nuestros datos. Como ejemplo, vamos a añadir una nueva columna a nuestra tabla de equinos para clasificar su condición corporal basándonos en el peso.

3.1. Crear una Nueva Variable Usaremos la función ifelse(), que es una herramienta lógica muy potente. Su estructura es simple: ifelse(condición,

valor_si_es_verdad, valor_si_es_falso)

Vamos a crear una nueva columna llamada ‘Condicion’. La condición es: ¿el valor en la columna ‘Peso_Kg’ es menor a 300? - Si es VERDADERO, el valor en la nueva columna será “Bajo Peso”. - Si es FALSO, el valor será “Normal”,

equinos_dfCondicion <- ifelse(Equinos$`Peso (Kg)` < 300, "Peso Bajo", "Normal")

Ahora, vamos a inspeccionar de nuevo la tabla para verificar que la nueva columna se ha añadido correctamente al final.

print(head(equinos_df))

Como puedes ver en el resultado, ahora tenemos una nueva variable que nos da información adicional sobre cada animal.

3.2. Exportar el Data Frame Modificado a un Archivo Excel Ahora que hemos modificado nuestra tabla, queremos guardarla como un nuevo archivo de Excel. Para esto, usaremos la función write_xlsx() del paquete writexl.

library(writexl)
#Definir la ruta y nombre del archivo de salida
#¡RECUERDA MODIFICAR ESTA RUTA! Aquí es donde se guardará tu nuevo archivo.
ruta_salida <- "C:/Users/alumno/Desktop/equinos_modificado.xlsx"

#Usar write_xlsx() para guardar el objeto en un archivo.
#El primer argumento es el objeto de R que quieres guardar (equinos_df).
#El segundo es la ruta completa y el nombre del archivo que se creará.
write_xlsx(equinos_df, path = ruta_salida)

¡Y listo! Ahora puedes ir a la carpeta que especificaste en la ruta_salida y encontrarás un nuevo archivo de Excel llamado equinos_modificado.xlsx que contiene la tabla con la columna Condicion que acabamos de crear.

Cuestionario:

Pregunta 1: Con tus propias palabras, ¿qué es un archivo de datos y cuál fue su propósito en esta práctica?

Pregunta 2: En nuestra tabla equinos_df, ¿qué representa una columna (como Peso_Kg o Raza)? ¿Qué otro nombre le dimos a las columnas en la introducción?

Pregunta 3: Y en esa misma tabla, ¿qué información nos proporciona una fila completa? ¿Qué representa cada fila en el contexto de nuestro estudio ficticio?

Pregunta 4: Imagina que, al crear el archivo de Excel, hubieras escrito “500 kg” (con texto) en la celda del peso en lugar de solo el número 500. ¿Qué tipo de problemas crees que podría causar esto al intentar hacer análisis numéricos (como calcular el peso promedio) en R?

Pregunta 5: Basado en tu experiencia en esta práctica, explica con un ejemplo por qué es tan importante la estandarización y la limpieza de los registros (por ejemplo, no usar espacios en los nombres de columnas, mantener el mismo formato en cada celda) para la investigación en medicina veterinaria y zootecnia.

“PROYECTO PAPIME PE215125 DESARROLLO DE MATERIAL DE PRÁCTICAS Y APOYO AUDIOVISUAL PARA LA ASIGNATURA DE MÉTODOS ESTADÍSTICOS EN MEDICINA VETERINARIA Y ZOOTECNIA”

Los autores y participantes agradecen al Programa de Apoyo a Proyectos para Innovar y Mejorar la Educación (PAPIME) de la Universidad Nacional Autónoma de México, por el apoyo brindado, el cual fue fundamental para el éxito de este proyecto. Así como a la Facultad de Medicina Veterinaria y Zootecnia y al Departamento de Genética y Bioestadística.

Héctor Alexander Camarena Ledesma, Jessica González Perea, Ángel Moisés Rentería López, Marco Antonio Alvarado Salas, Argelia Ximena Hernández Recio, Carlos Leonardo Pérez Cuenca, Fabiola Asunción Flores Figueroa, Braulio Herrera Ramírez, Areli Maldonado Fernández, Arenas Escamilla Daniel, Pineda Alatriste Saúl, Rogers Montoya Nathaniel Alec, Noé Orlando Juárez López, Daniel Alonso Domínguez Olvera.