El lenguaje de programación R se ha consolidado como una herramienta fundamental para el análisis estadístico y la manipulación de datos en las ciencias biológicas y ambientales (Team, R. C., 2013). La capacidad de R para realizar operaciones matemáticas básicas, manipular matrices de datos y generar visualizaciones lo convierte en una plataforma integral para la investigación científica moderna (Crawley, 2012). La manipulación efectiva de datos constituye un paso crítico en cualquier análisis científico, ya que permite transformar datos crudos en información estructurada y analizable (Jones et al., 2014). El paquete tidyverse, que incluye herramientas como dplyr y tidyr, ha revolucionado la forma en que los investigadores abordan la limpieza y transformación de datos, proporcionando una sintaxis coherente y intuitiva para estas tareas (Healy, 2019). El propósito de esta práctica es desarrollar competencias fundamentales en el uso de R para el análisis de datos, específicamente enfocándose básicas, manipulación de matrices y aplicación de estructuras de control de flujo. Se implementaron estas técnicas utilizando datos de investigación para demostrar la aplicabilidad práctica de estas herramientas en contextos científicos reales. La metodología empleada incluyó la revisión de comandos básicos de R, la instalación y carga de paquetes del tidyverse, y la aplicación de diversas operaciones de manipulación de datos siguiendo las mejores prácticas documentadas en la literatura especializada (Bolker, 2008). Esta aproximación práctica permite consolidar el conocimiento teórico mediante la aplicación directa en casos de estudio relevantes para la investigación biológica.
Existen distintos comandos que ayudan a realizar operaciones de manera autómatica. A continuación se mencionan algunos de ellos. Es importante mencionar que es de gran ayuda tanto como para posibles futuros lectores del código como para uno mismo el dejar anotaciones en cada procedimiento, eso se puede realizar colocando el símbolo “/#” seguido de la anotación. Esto ayudará a recordar el uso de cada script y facilitar su uso para otras personas.
# "^" Calcula la potencia del número que se le indique.
# Ejemplo:
4^24
## [1] 2.81475e+14
# log() calcula el logaritmo natural del número indicado.
# Ejemplo:
log(45)
## [1] 3.806662
# exp() calcula la exponencial de un número.
# Ejemplo:
exp(3)
## [1] 20.08554
# log10() calcula el logaritmo base 10 de un número.
# Ejemplo:
log10(100)
## [1] 2
# sqrt() calcula la raíz cuadrada de un número.
# Ejemplo:
sqrt(25)
## [1] 5
# factorial() calcula el factorial de un número.
# Ejemplo:
factorial(5)
## [1] 120
# floor() redondea un número hacia el entero menor.
# Ejemplo:
floor(3.9)
## [1] 3
# ceiling() redondea un número hacia el entero mayor.
# Ejemplo:
ceiling(3.1)
## [1] 4
# round() redondea un número a un número de decimales específico.
# Ejemplo:
round(pi, 2)
## [1] 3.14
# sin() calcula el seno de un ángulo en radianes.
# Ejemplo:
sin(pi/2)
## [1] 1
# cos() calcula el coseno de un ángulo en radianes.
# Ejemplo:
cos(pi/2)
## [1] 6.123032e-17
# abs() calcula el valor absoluto de un número.
# Ejemplo:
abs(-5.5)
## [1] 5.5
# 1.2e3 notación científica para 1.2 x 10^3.
# Ejemplo:
1.2e3
## [1] 1200
# 5%/%2 devuelve el cociente de la división de enteros.
# Ejemplo:
5%/%2
## [1] 2
# 5%%2 devuelve el módulo (el resto) de la división de enteros.
# Ejemplo:
5%%2
## [1] 1
# c() concatena elementos para crear un vector.
# Ejemplo:
c(1, 5, 9)
## [1] 1 5 9
# length() devuelve el número de elementos de un vector.
# Ejemplo:
x <- c(1, 2, 3)
length(x)
## [1] 3
# mean() calcula el promedio aritmético de un vector.
# Ejemplo:
mean(c(10, 20, 30))
## [1] 20
# sum() calcula la suma de los elementos de un vector.
# Ejemplo:
sum(c(1, 2, 3))
## [1] 6
# max() encuentra el valor máximo en un vector.
# Ejemplo:
max(c(1, 5, 2))
## [1] 5
Instalación de paquetes con linea de código
```{# instalación de paquetes}
install.packages(“tidyr”) install.packages (“dplyr”) install.packages (“tidyverse”)
library (tidyverse) library (dplyr) library (tidyr)
Para cargar una matriz de datos se debe seguir el siguiente procedimiento:
``` r
# Se debe iniciar estableciendo el nombre que tendrá la matriz al cargarla de la siguiente manera:
Matriz.de.parametros<- read.csv ("C:/Users/joser/OneDrive/Documents/datos_completos.csv")
# siempre recordar que la separación de directorios se debe hacer con "/" y no con "\"
# La matriz de datos siempre debe estar en formato .csv
Una vez cargada la matriz de datos, se puede manipular de distintas maneras:
# Se pueden seleccionar seleccionar filas o coumnas que cumplan con una condición específica. Por
# ejemplo,para ver solo los datos que se soliciten.
consulta <- Matriz.de.parametros %>%
filter(pH > 7.5, WaterTemp_c > 27)
Se puede calcular la suma total de individuos del género Hetaerina y Acanthagrion en todos los sitios.
suma <- Matriz.de.parametros %>%
summarise(
total_hetaerina = sum(Hetaerina, na.rm = TRUE),
total_acanthagrion = sum(Acanthagrion, na.rm = TRUE)
)
Se pueden crear resumenes estadísticos para variables como ph, WaterTemp_c y spCond utilizando summarise(). Se calculan la media (mean()) y la desviación estándar (sd()) para cada una.
Resumen.estadistico <- Matriz.de.parametros %>%
summarise(
media_ph = mean(pH, na.rm = TRUE),
sd_ph = sd(pH, na.rm = TRUE),
media_temp = mean(WaterTemp_c, na.rm = TRUE),
sd_temp = sd(WaterTemp_c, na.rm = TRUE),
media_spcond = mean(spCond, na.rm = TRUE),
sd_spcond = sd(spCond, na.rm = TRUE)
)
Se puede realizar un submuestreo aleatorio de 5 filas de la base de datos original utilizando la función sample_n(). Esto es útil para obtener una muestra representativa o para probar un análisis en un subconjunto más pequeño.
set.seed(123) # Para reproducibilidad
submuestreo <- Matriz.de.parametros %>%
sample_n(5)
Otras operaciones que se pueden relaizar:
#Ordenar los datos (arrange)
#Se ordenan los datos de forma descendente (desc()) basándose en los valores de pH
ordenado <- Matriz.de.parametros %>%
arrange(desc(pH))
# Agrupar y resumir (group_by + summarise)
# Permite agrupar los datos por la variable categórica DomRiparianVeg para calcular el promedio de pH para cada tipo de vegetación.
promedio_pH_por_veg <- Matriz.de.parametros %>%
group_by(DomRiparianVeg) %>%
summarise(
promedio_pH = mean(pH, na.rm = TRUE),
.groups = 'drop' # Para eliminar la agrupación después de resumir
)
Bolker, B. M. (2008). Ecological models and data in R. Princeton University Press. Crawley, M. J. (2012). The R book. John Wiley & Sons. Healy, K. (2019). Data visualization: a practical introduction. Princeton University Press. Jones, O., Maillardet, R., & Robinson, A. (2014). Introduction to scientific programming and simulation using R (2nd ed.). Chapman and Hall/CRC. Team, R. C. (2013). R: A language and environment for statistical computing.