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 FALSECada 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 TRUEEl 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.
Desafío
FácilUsa 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:
- Crea un vector llamado
comfortable_tempque almaceneTRUEpara cada temperatura que sea mayor o igual a 20 Y menor o igual a 30 - Crea un vector llamado
high_humidityque almaceneTRUEpara cada valor de humedad que sea mayor a 70 - Crea un vector llamado
pleasant_dayque almaceneTRUEpara cada día donde la temperatura esté entre 20 y 30 (inclusive) Y la humedad sea menor o igual a 60 - Crea un vector llamado
extreme_weatherque almaceneTRUEpara cada día donde la temperatura sea mayor a 30 O la humedad sea mayor a 80 - Crea un vector llamado
stay_insideque almaceneTRUEpara 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 FALSELos 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 TRUEEl 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)Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos (AND, OR)Operadores lógicos Parte 2 (NOT)Resumen - Lógica simpleLógica vectorizada Parte 1Lógica vectorizada Parte 27Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario2Variables y tipos de datos
Tipo de dato numéricoTipo de dato enteroTipo de dato de caracteresTipo de dato lógicoComprobación de tipos de datosConvenciones de nomenclaturaValores faltantes: NAResumen - Creación de variables8Bucles
Bucle ForBucle WhileBreakNext (Continue)Repaso - FactorialGeneración de secuencias (seq, :)Bucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosDivisión entera y móduloOperadores de asignaciónRepaso - Matemáticas simplesOperadores de comparación6E/S básica
Imprimir salidaCat para salidaSalida con variablesLectura de entrada con readline()Conceptos básicos de conversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Funciones
Declarar una funciónArgumentos de una funciónValores de retornoRepaso - Función SigmaRepaso - Función de validaciónValores de parámetros por defecto