Operador | Comparación | Ejemplo | Resultado |
---|---|---|---|
< | Menor que | 7 < 4 | FALSE |
<= | Menor o igual que | 7 <= 4 | FALSE |
> | Mayor que | 7 > 4 | TRUE |
>= | Mayor o igual que | 7 >= 4 | TRUE |
== | Exactamente igual que | 7 == 4 | FALSE |
!= | No es igual que | 7 != 4 | TRUE |
5 Laboratorio de R
3. Operadores utilizados en R
- Autor: Edsaúl Emilio Pérez Guerrero
- Afiliación: Universidad de Guadalajara
- mail: edsaul.perezg@academicos.udg.mx
- Última actualización: 2024-09-11
En este capitulo se revisarán a los operadores, unos símbolos que nos serán de mucha ayuda para realizar operaciones, asignaciones, pruebas lógicas, filtrado de bases de datos etc. Algunos de estos operadores (los numéricos) ya fueron revisados en el capitulo 1. En este, solamente revisaremos los operadores relacionales, lógicos y de asignación.
5.1 Operadores relacionales
Muchas veces necesitamos hacer comparaciones de dos variables o de dos números. Los operadores relacionales nos sirven para ayudan a realizar estas comparaciones. Como resultado siempre obtendremos una de dos respuestas TRUE
o FALSE
, cuando se cumpla o no respectivamente la condición de relación que establecimos. Los operadores relacionales se muestran en la tabla:
La tabla Tabla 5.1 muestra los datos que necesitaremos para nuestros ejercicios.
Note como el símbolo ==
indica igualdad. Es muy importante que recuerde esto, ya que un solo signo de =
se utiliza para asignar.
Los operadores relacionales, tienen la ventaja que nos permite comparar cualquier tipo de dato sin arrojar un error. Aunque comparar rojo
y blanco
no tiene mucho sentido.
5.2 Operadores lógicos
Los operadores lógicos son operaciones que se utilizan para describir relaciones lógicas y siempre darán como resultado una respuesta dicotómica. En el caso de cumplirse la relación lógica que estamos evaluando el resultado será TRUE
, si está por el contrario no se cumple el resultado será FALSE
. La tabla Tabla 5.2 muestra los operadores lógicos utilizados en R
.
Operador | Comparación |
---|---|
x | y | x Ó y es verdadero |
x & y | x Y y son verdaderos |
!x | x no es verdadero (negación) |
isTRUE(x) | x es verdadero (afirmación) |
Vamos a poner en práctica y a usar los operadores relacionales y lógicos. Para ello, vamos a utilizar la muestra de 12 pacientes de la base de datos bacteria Tabla 9.2.
ID | y | ap | hilo | week | trt | time | age |
---|---|---|---|---|---|---|---|
Patient A | n | a | hi | 6 | drug+ | 24 | 5 |
Patient B | n | a | hi | 2 | drug+ | 18 | 3 |
Patient C | n | a | hi | 4 | drug+ | 7 | 3 |
Patient D | n | a | hi | 6 | drug+ | 26 | 4 |
Patient E | n | p | hi | 0 | placebo | 26 | 4 |
Patient F | y | p | hi | 6 | placebo | NA | 3 |
Patient G | y | p | hi | 11 | placebo | NA | 4 |
Patient H | y | a | lo | 0 | drug | NA | 7 |
Patient I | y | a | lo | 2 | drug | NA | 6 |
Patient J | y | a | lo | 4 | drug | NA | 3 |
Patient K | y | a | lo | 6 | drug | NA | 3 |
Patient L | n | a | lo | 2 | drug | 20 | 4 |
Lo primero será crear tres objetos, uno para las edades de los pacientes A al D (drug+), otro para las edades de los pacientes E al G (placebo) y uno más para los pacientes H al L (drug). Para fines prácticos nombraremos estos objetos de la siguiente forma:
- Pacientes_A, para los pacientes A al D (drug+)
- Pacientes_E, para los pacientes E al G (placebo)
- Pacientes_H, para los pacientes H al L (drug)
El siguiente código muestra como crear los objetos:
<- c(5,3,3,4)
Pacientes_A <- c(4,3,4)
Pacientes_E <- c (7,6,3,3,4) Pacientes_H
Supongamos que necesitamos saber cuantos pacientes de cada uno de los grupo tienen una edad mayor a 5, para ello podemos utilizar el siguiente código:
>5 Pacientes_A
Esto dará como resultado
[1] FALSE FALSE FALSE FALSE
Ninguno de los pacientes tiene una edad mayor a 5. Ahora pruebe con los otros dos objetos.
>5 Pacientes_E
[1] FALSE FALSE FALSE
>5 Pacientes_H
[1] TRUE TRUE FALSE FALSE FALSE
Con los operadores relacionales también podemos comparar dos objetos. Por ejemplo, ¿las edades de los pacientes del grupo A serán mayor que la de las edades del grupo E?
>Pacientes_E Pacientes_A
Warning in Pacientes_A > Pacientes_E: longer object length is not a multiple of
shorter object length
[1] TRUE FALSE FALSE FALSE
Lo que hizo R
fue comparar cada por pares las edades del grupo A con las del grupo E. Preste atención a la advertencia que indica que uno de los objetos.
5.3 Ejercicios operadores relacionales y lógicos
Para resolver estos ejercicios cree un nuevo script, que deberá ser entregado como parte de las actividades de esta sesión. Importante que en el script se cuente con un código para la creación de los objetos con la edades de los pacientes.
Ejercicio 5.1 Identifique cuantos de los pacientes del grupo H (Pacientes_H) tienen una edad menor a 3 o un edad mayor a 5.
Ejercicio 5.2 En los tres grupos de pacientes ¿Cuantos tienen edades entre 4 y 6 años?
Ejercicio 5.3 ¿Cuantos pacientes del grupo A tienen una edad mayor o igual a 4?
Ejercicio 5.4 ¿Cuantos pacientes de los tres grupos tienen una edad exactamente igual a 4?
Ejercicio 5.5 ¿Cuantos de los pacientes en los tres grupos tienen una edad diferente de 5?
Ejercicio 5.6 ¿Cuantos pacientes tienen una edad exactamente igual 3 o una edad mayor o igual a 6 años?
Ejercicio 5.7 ¿El promedio de las edades de los pacientes del grupo A (Pacientes_A) es mayor o igual al promedio de las edades del grupo H (Pacientes_H)?