El artículo clasifica los operadores esenciales de R en 6 categorías principales, explicando cómo trabajar con valores individuales, vectores y matrices:
Aritméticos: Para cálculos matemáticos básicos
(+, -, *, /,
^) y avanzados como módulo (%%) o división de
enteros (%/%).
Lógicos / Booleanos: Evalúan condiciones
regresando TRUE o FALSE (&,
|, !, xor).
Relacionales / Comparación: Comparan elementos
(>, <, ==,
!=).
Asignación: Guardan datos en variables. Se
recomienda usar <- para asignar y reservar el
= solo para argumentos de funciones.
Misceláneos: Funciones específicas como extraer
columnas ($), crear secuencias (:) o definir
fórmulas (~).
Tuberías (Pipe %>%): Conectan
funciones encadenadas de forma limpia (ej. con
dplyr).
# 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
# 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
# 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
%>% (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"