Lógica vectorizada Parte 2
Parte de la sección Fundamentos del Journey de R de Coddy. Lección 21 de 78.
Al igual que AND y OR tienen versiones vectorizadas, el operador NOT también funciona elemento por elemento en vectores. Cuando aplicas ! a un vector de valores lógicos, invierte cada elemento individualmente.
passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed # FALSE TRUE FALSE TRUECada TRUE se convierte en FALSE, y cada FALSE se convierte en TRUE. Esto es especialmente útil cuando quieres encontrar elementos que no cumplen una determinada condición:
temperatures <- c(18, 25, 30, 15, 22)
# Encuentra las temperaturas que NO están por encima de 20
!(temperatures > 20) # TRUE FALSE FALSE TRUE FALSEPuedes combinar el NOT vectorizado con & y | para crear filtros complejos:
ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)
# Puede participar si: age >= 18 OR (under 18 AND has permission)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUERecuerda: usa &, | y ! individuales cuando trabajes con vectores, y &&, || dobles cuando compares valores individuales.
Desafío
FácilUsa el operador NOT vectorizado (!) junto con & y | para crear condiciones lógicas complejas elemento por elemento.
Se te proporcionan los siguientes vectores:
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)Usa operadores lógicos vectorizados, incluido el operador NOT, para crear los siguientes vectores lógicos:
- Crea un vector llamado
failedque almaceneTRUEpara cada puntuación que sea NOT mayor o igual que 60 - Crea un vector llamado
absentque almacene lo opuesto deattended(invierte cada valor) - Crea un vector llamado
at_riskque almaceneTRUEpara cada estudiante que NOT haya asistido OR que NOT haya entregado la tarea - Crea un vector llamado
passing_but_absentque almaceneTRUEpara cada estudiante que tenga una puntuación mayor o igual que 60 AND que NOT haya asistido - Crea un vector llamado
needs_supportque almaceneTRUEpara cada estudiante cuando: (la puntuación sea menor que 50) OR (que NOT haya asistido AND que NOT haya entregado la tarea)
Usa la función print() para mostrar failed, absent, at_risk, passing_but_absent y needs_support exactamente en ese orden.
Pruébalo tú mismo
# Vectores dados
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)
# TODO: Escribe tu código debajo
# 1. Crea 'failed' - TRUE para scores NOT >= 60
# 2. Crea 'absent' - opuesto de attended
# 3. Crea 'at_risk' - NOT attended OR NOT submitted homework
# 4. Crea 'passing_but_absent' - score >= 60 AND NOT attended
# 5. Crea 'needs_support' - (score < 50) OR (NOT attended AND NOT submitted homework)
# Imprime los resultados
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)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 defectoPractica por tu cuenta: Compilador de R online