Menu
Coddy logo textTech

Lógica vectorizada Parte 1

Parte de la sección Fundamentos del Journey de R de Coddy — lección 20 de 78.

R tiene dos versiones de los operadores AND y OR. Has aprendido sobre && y ||, que funcionan con valores únicos. Ahora exploremos sus contrapartes vectorizadas: & y | (símbolos simples).

La diferencia clave es que & y | comparan valores elemento por elemento cuando se trabaja con múltiples valores:

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

Cada posición se compara de forma independiente. En la primera posición, tanto a como b son TRUE, por lo que a & b devuelve TRUE. En la segunda posición, a es TRUE pero b es FALSE, por lo que a & b devuelve FALSE.

Esto se vuelve potente cuando se combina con operadores de comparación:

scores <- c(85, 42, 91, 67, 55)

# Comprobar qué puntuaciones están entre 50 y 80
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

El resultado es un vector de valores lógicos que muestra qué elementos cumplen ambas condiciones. Este comportamiento elemento a elemento es esencial para filtrar y analizar datos en R.

challenge icon

Desafío

Fácil

Usa los operadores vectorizados AND (&) y OR (|) para realizar comparaciones elemento a elemento en vectores.

Se te proporcionan los siguientes vectores:

temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

Usa operadores lógicos vectorizados para crear los siguientes vectores lógicos:

  1. Crea un vector llamado comfortable_temp que almacene TRUE para cada temperatura que sea mayor o igual a 20 Y menor o igual a 30
  2. Crea un vector llamado high_humidity que almacene TRUE para cada valor de humedad que sea mayor a 70
  3. Crea un vector llamado pleasant_day que almacene TRUE para cada día donde la temperatura esté entre 20 y 30 (inclusive) Y la humedad sea menor o igual a 60
  4. Crea un vector llamado extreme_weather que almacene TRUE para cada día donde la temperatura sea mayor a 30 O la humedad sea mayor a 80
  5. Crea un vector llamado stay_inside que almacene TRUE para cada día donde la temperatura sea menor a 18 O (la temperatura sea mayor a 30 Y la humedad sea mayor a 70)

Usa la función print() para mostrar comfortable_temp, high_humidity, pleasant_day, extreme_weather y stay_inside en ese orden exacto.

Hoja de referencia

R tiene dos versiones de los operadores AND y OR:

  • && y || funcionan con valores únicos
  • & y | son operadores vectorizados que comparan valores elemento por elemento

Los operadores vectorizados & y | comparan cada posición de forma independiente:

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

Los operadores vectorizados son potentes cuando se combinan con operadores de comparación:

scores <- c(85, 42, 91, 67, 55)

# Comprobar qué puntuaciones están entre 50 y 80
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

El resultado es un vector de valores lógicos que muestra qué elementos cumplen las condiciones.

Pruébalo tú mismo

# Vectores proporcionados
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

# TODO: Escribe tu código a continuación
# 1. Crea comfortable_temp: TRUE cuando temp >= 20 Y temp <= 30

# 2. Crea high_humidity: TRUE cuando humidity > 70

# 3. Crea pleasant_day: TRUE cuando temp es 20-30 Y humidity <= 60

# 4. Crea extreme_weather: TRUE cuando temp > 30 O humidity > 80

# 5. Crea stay_inside: TRUE cuando temp < 18 O (temp > 30 Y humidity > 70)


# Imprime los resultados
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos