Los operadores son los símbolos que le indican a R que debe realizar una tarea, siendo específicos para cada tipo de tarea. Los tipos de operadores principales son los siguientes:
Este es probablemente el operador más importante, pues nos permite asignar información a los objetos.
Operador | Operación |
---|---|
<- | Asigna un valor a una variable |
= | Asigna un valor a una variable |
Aunque el uso de ambos asignadores es indiferente, el asignador
<-
es dominante en la mayoría de los trabajos sobre R,
ya que es más fácil de reconocer visualmente y no induce a error.
Después de realizar la operación de asignación, podemos usar el
objeto para realizar operaciones sobre él. Además, esta operación nos
permite “guardar” el resultado de operaciones, de modo que podemos
recuperarlos sin necesidad de realizar las operaciones otra vez. En este
ejemplo, asignamos valores a los objetos estatura
y
peso
.
estatura <- 1.73
peso <- 83
Llamamos a sus valores asignados
estatura
peso
Son usados para operaciones aritméticas sobre datos de tipo entero y numérico.
Operador | Operación | Ejemplo | Resultado |
---|---|---|---|
+ | Suma | 5 + 3 | 8 |
- | Resta | 5 - 3 | 2 |
* | Multiplicación | 5 * 3 | 18 |
/ | División | 5 / 3 | 1.666667 |
^ | Potencia | 5 ^ 3 | 125 |
%% | División entera | 5 %% 3 | 2 |
%/% | División entera | 5 %/%3 | 1.666667 |
Al escribir una operación aritmética en la consola de R y ejecutarla, devuelve su resultado.
15 * 3
Si se intenta una operación aritmética con otro tipo de dato que no sea numérico, R primero intentará transformar dicho dato en numérico. Si la coerción tiene éxito se realizará la operación normalmente, pero si falla, el resultado será un error.
#4 + "tres"
El mensaje non-numeric argument for binary operator
aparece siempre que se intenta una operación aritmética con datos no
numéricos.
Por su parte, cualquier operación aritmética que intentemos con un
dato NA
, devolverá NA
como resultado.
NA - 66
21 * NA
NA ^ 13
Entre los operadores aritméticos, obsérvese que hay un operador
división
y otro división entera
. El primero
devuelve el cociente, pero el segundo requiere una
explicación adicional sobre su uso. La operación que realiza es una
división de un número entre otro, pero en lugar de devolver el cociente,
nos devuelve el residuo. Por ejemplo, si dividimos 4
entre 2, el resultado será 0; al ser una división exacta no tiene
residuo.
4 %% 2
En cambio, dividiendo 5 entre 2, el resultado será 1, pues este es el residuo de la operación.
5 %% 2
📝 ACTIVIDAD DE EVALUACIÓN CONTINUA 4
El alumnado deberá entregar a los profesores a través de correo electrónico un script con los comandos de R correspondientes a las cuestiones planteadas a continuación.
Divide el peso entre la estatura elevada al cuadrado.
Cambia el valor de la variable peso a 76 y la estatura a 1.56 y recalcula la operación anterior
Asignamos el resultado de una operación a un nuevo objeto denominado
bmi
.
Sean los siguientes objetos
a <- 3
b <- 4
c <- 5
d <- 6
e <- 7
Realiza las siguientes operaciones
📝
Suma a
y c
.
Multiplica a
y d
.
Resta d
menos e
.
Eleva al cubo a
.
Divide d
entre a
.
Realiza una división entera entre e
y
b
.
Los operadores lógicos son usados para hacer comparaciones y siempre devuelven como resultado TRUE o FALSE (verdadero o falso, respectivamente).
Operador | Comparación | Ejemplo | Resultado |
---|---|---|---|
< | Menor que | 5 < 3 | FALSE |
<= | Menor o igual que | 5 <= 3 | FALSE |
> | Mayor que | 5 > 3 | TRUE |
>= | Mayor o igual que | 5 >= 3 | TRUE |
== | Igual que | 5 == 3 | FALSE |
!= | No es igual que | 5 != 3 | TRUE |
Es posible comparar cualquier tipo de dato sin que resulte en un
error. Sin embargo, al usar los operadores >
,
>=
, <
y <=
con cadenas
de texto, estos tienen un comportamiento especial. Por ejemplo,
"casa" > "barco"
nos devuelve TRUE
.
"casa" > "barco"
Este resultado se debe a que se ha hecho una comparación por orden
alfabético. En este caso, la palabra “casa” tendría una posición
posterior a “barco”, pues empieza con “c” y esta letra tiene una
posición posterior a la “b” en el alfabeto. Por lo tanto, es verdadero
que sea “mayor”. Cuando intentamos comparar factores, siempre
obtendremos como resultado NA
y una advertencia acerca de
que estos operadores no son significativos para datos de tipo
factor.
as.factor("casa") > "barco"
📝 ACTIVIDAD DE EVALUACIÓN CONTINUA 5
Seana
yb
a <- 4
b <- 6
Responde a las siguientes preguntas
¿Es a
mayor que b
?
¿Es a
menor que b
?
¿Es a
igual o mayor que b
?
¿Es a
igual o menor que b
?
¿Es a
igual que b
?
¿Es a
diferente (no es igual) que b
?
¿Es a
igual a 4?
¿Es b
diferente a la suma de a y 2?
Los operadores lógicos son usados para operaciones de álgebra booleana, es decir, para describir relaciones lógicas, expresadas como verdadero (TRUE) o falso (FALSE).
Operador | Comparación | Ejemplo | Resultado |
---|---|---|---|
x | y | x ó y es verdadero | TRUE |
x & y | x e y son verdaderos | TRUE & FALSE | FALSE |
!x | x no es verdadero (negación) | !TRUE | FALSE |
isTRUE(x) | x es verdadero (afirmación) | isTRUE(TRUE) | TRUE |
Los operadores |
y &
siguen estas
reglas:
|
devuelve TRUE
si alguno de los datos es
TRUE
.&
solo devuelve TRUE
si ambos datos es
TRUE
.|
solo devuelve FALSE
si ambos datos son
FALSE
.&
devuelve FALSE
si alguno de los
datos es FALSE
.Estos operadores pueden ser usados con datos de tipo numérico, lógico
y complejo. Al igual que con los operadores relacionales, los operadores
lógicos siempre devuelven TRUE
o FALSE
.
Para realizar operaciones lógicas, todos los valores numéricos y
complejos distintos a 0
son coercionados a
TRUE
, mientras que 0
siempre es coercionado a
FALSE
. Por ejemplo, 5 | 0
resulta en
TRUE
y 5 & FALSE
resulta en
FALSE
. Podemos comprobar lo anterior con la función
isTRUE()
.
5 | 0
5 & 0
isTRUE(0)
isTRUE(5)
Ejemplos
a <- 4
b <- 1
c <- 5
a == 5
a == 4 & b < 2
a == 4 | b < 2
a == 4 | b < 2 & c != 9
Estos operadores se pueden combinar para expresar relaciones
complejas. Por ejemplo, la negación FALSE Y FALSE
dará como
resultado TRUE
.
!(FALSE | FALSE)
También podemos combinar operadores lógicos y relacionales, dado que esto últimos dan como resultado TRUE y FALSE.
En R, al igual que en matemáticas, las operaciones tienen un orden definido, ya que el resultado de algunas de ellas depende de un orden. El orden de operaciones incluye a las aritméticas, relacionales, lógicas y de asignación.
Orden | Operadores |
---|---|
1 | ^ |
2 | * / |
3 | + - |
4 | < > <= >= == != |
5 | ! |
6 | & |
7 | |
8 | <- |
Si deseamos que una operación ocurra antes que otra, rompiendo este orden de evaluación, usamos paréntesis; existe la posibilidad de anidar paréntesis, pero hay que tener mucho cuidado con este tipo de operaciones.
cat("\014") # Limpia la consola
rm(list = ls()) # Limpia environment