Operadores en R

El artículo clasifica los operadores esenciales de R en 6 categorías principales, explicando cómo trabajar con valores individuales, vectores y matrices:

  1. Aritméticos: Para cálculos matemáticos básicos (+, -, *, /, ^) y avanzados como módulo (%%) o división de enteros (%/%).

  2. Lógicos / Booleanos: Evalúan condiciones regresando TRUE o FALSE (&, |, !, xor).

  3. Relacionales / Comparación: Comparan elementos (>, <, ==, !=).

  4. Asignación: Guardan datos en variables. Se recomienda usar <- para asignar y reservar el = solo para argumentos de funciones.

  5. Misceláneos: Funciones específicas como extraer columnas ($), crear secuencias (:) o definir fórmulas (~).

  6. Tuberías (Pipe %>%): Conectan funciones encadenadas de forma limpia (ej. con dplyr).

1. Operadores Aritméticos (Contexto: Gestión de Inventario)

# Cálculo de cajas necesarias y productos sueltos 
total_productos <- 53 
capacidad_caja <- 10  
# División entera: ¿Cuántas cajas llenas tenemos? 
cajas_llenas <- total_productos %/% capacidad_caja  
# Resultado: 5  
# Módulo: ¿Cuántos productos quedan sueltos? 
productos_sueltos <- total_productos %% capacidad_caja  
# Resultado: 3 

2. Operadores Relacionales y Lógicos (Contexto: Filtro de Usuarios)

# Datos de un cliente ficticio 
edad <- 26 
ingresos <- 1500  
# Verificar si califica para una promoción (Mayor de 18 Y ingresos menores a 2000) 
califica_promo <- (edad >= 18) & (ingresos < 2000)  
# Resultado: TRUE  
# Verificar si cumple AL MENOS una condición (Menor de 30 O ingresos altos) 
joven_o_rico <- (edad < 30) | (ingresos > 5000) 
# Resultado: TRUE 

3. Operadores de Asignación y Buenas Prácticas

# Estilo RECOMENDADO en R (Uso de flecha) 
puntuacion_maxima <- 100   
# Estilo NO recomendado para variables (Reservar '=' para funciones) puntuacion_maxima = 100   
# Ejemplo correcto combinando ambos: 
secuencia_numeros <- seq (from = 1, to = 10)
# '<-' para variable, '=' para argumentos 

4. Operadores Misceláneos (Contexto: Análisis de Datos)

# Crear un DataFrame

tienda <- data.frame (meses = 1:4, ventas = c(1200, 1500, 800, 2100))     
# Operador ':' genera secuencia c(1, 2, 3, 4)    
# Operador '$' para extraer una columna específica y calcular la media

media_ventas <- mean(tienda$ventas) 

# Resultado: 1400 

5. El Operador Pipe %>% (Contexto: Limpieza de Texto)

library(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
texto_sucio <- c("  R es genial ", " APRENDER ", "  Código limpio ")
texto_sucio
## [1] "  R es genial "   " APRENDER "       "  Código limpio "
# Tradicional (Incómodo de leer de adentro hacia afuera) 
# toupper(trimws(texto_sucio))  
# Con Pipe (Flujo natural: toma el texto, limpia espacios Y LUEGO pasa a mayúsculas) 
texto_limpio <- texto_sucio %>%    trimws() %>%    toupper() 
texto_limpio
## [1] "R ES GENIAL"   "APRENDER"      "CÓDIGO LIMPIO"
# Resultado: "R ES GENIAL" "APRENDER" "CÓDIGO LIMPIO"