Introducción al Lenguaje R: Tipos de Operadores

9 minute read

Published:

En este post explicaré cuales son los tipos de operadores que hay en la programación con el lenguaje R, cómo se utilizan y para que sirven. Al final se pondrán en practica algunos de los conocimientos adquiridos por medio de ejercicios.

Tipos de Operadores

Los principales operadores que se usan en R son:

  1. Operadores de asignación.
  2. Operadores aritméticos.
  3. Operadores lógicos.
  4. Operadores relacionales.

Operadores de asignación

Los operadores de asignación son aquellos que nos permiten crear o asignarles valores a objetos.

SímboloDescripción
=igual
<-“convertirse” (become) la izquierda
->“convertirse” (become) la derecha

En el siguiente ejemplo se asignan valores a los objetos numero y letra.

 numero= 12
"ABC" -> letra 
numero
 [1]  12
letra
"ABC"

Operadores aritméticos

Los operadores aritméticos se usan para realizar operaciones matemáticas.Estas operaciones se pueden llevar a cabo con valores numéricos o con objetos que tienen valores numéricos.

Los operadores aritméticos que se usan en el lenguaje de programación R son:

SímboloOperación
+Suma
-Resta
*Multiplicación
/División
^Potencia
%%División Entera

Las sumas se puede llevar a cabo entre valores numéricos:

2 + 3
[1] 5

También se pueden realizar operaciones entre objetos pero solo que estos contengan valores numéricos:

cinco = 5
tres = 3
cinco + tres
[1] 8

Con los anteriores objetos se puede aplicar los demás operadores:

cinco - tres
[1] 2
cinco * tres
[1] 15
cinco / tres
[1] 1.666667
cinco ^ tres
[1] 125

La división entera es un caso especial donde el resultado no es el cociente sino el residuo de la operación:

cinco %% tres
[1] 2
cinco %% 4
[1] 1

Operadores Lógicos

Los operadores lógicos se utilizan para hacer comparaciones entre valores, estos pueden ser númericos o no, devolviendo como resultado otro valor que se conoce como Booleano que pueden ser ciertos (TRUE) o falso (FALSE).

Los operadores lógicos son tres y representan la negación, la conjunción y la disyunción.

SímboloOperación
!Negación
&Conjunción
|Disyunción

Negación (NOT)

El símbolo de negación en el lenguuaje de programación R es !. La negación (NOT) representa una operación que da la negación booleana del objeto al que se le aplique. Este operador es unitario, esto quiere que se aplica a un solo valor. En teoría de conjuntos se entendería como una exclusión.

En el siguiente ejemplo veremos que el valor booleano TRUE al ser negado por el operador lógico ! se convierte en su contrario:

!TRUE
FALSE
!FALSE
TRUE

Conjunción (AND)

El símbolo de conjunción en el lenguaje de programación R es &. La conjunción (AND) representa una operación que da como resultado un valor booleano TRUE solo si ambas proposiciones son ciertas y se identifica con la palabra en español “y”. Este operador es binario, esto quiere decir que se aplica a dos valores.En teoría de conjuntos se entendería como una intersección.

En el siguiente ejemplo veremos todas las operaciones de conjunción que se presentan entre los valores booleanos y sus respectivos resultados:

TRUE & TRUE
[1] TRUE
TRUE & FALSE
[1] FALSE
FALSE & TRUE
[1] FALSE
FALSE & FALSE
[1] FALSE

Disyunción (OR)

El símbolo de disyunción en el lenguaje de programación R es |. La disyunción (OR) representa una operación que da como resultado un valor booleano FALSE solo si ambas proposiciones son falsas y se identifica con la palabra en español “ó”. Este operador también es binario, esto quiere decir que se aplica a dos valores.En teoría de conjuntos se entendería como una unión.

En el siguiente ejemplo veremos todas las operaciones de Disyunción que se presentan entre los valores booleanos y sus respectivos resultados:

TRUE | TRUE
[1] TRUE
TRUE | FALSE
[1] TRUE
FALSE | TRUE
[1] TRUE
FALSE | FALSE
[1] FALSE

Operadores relacionales

Los operadores relacionales son símbolos que se usan para comparar dos valores, cuyo resultado es un valor booleano. Muchas veces estos operadores se ven estrechamente relacionados con los operadores lógicos.

SímboloOperación
<Menor que
>Mayor que
==Igual que
!=No es igual que
<=Menor o igual que
>=Mayor o igual que

Menor que (<)

El símbolo de < compara dos valores numéricos y devuelve un resultado booleano de TRUE cuando el valor de la izquierda del símbolo es menor al valor de la derecha del símbolo, si no es cierta la relación, entonce devolverá el resultado booleano de FALSE.

308 < 4500
[1] TRUE

Es posible relacionar datos tipo character, sin embargo el lenguaje de programación R siempre toma como valor de relación la primera letra de la cadena de texto, asumiendo el orden alfabético.

"zorro" < "burro"
[1] FALSE

En el anterior ejemplo, R asume que zorro tiene una posición alfabetica mayor a burro, por lo tanto el valor de la relación no sería cierta (FALSE).

Mayor que (>)

El símbolo de > compara dos valores numéricos y devuelve un resultado booleano de TRUE cuando el valor de la derecha del símbolo es mayor al valor de la izquierda del símbolo, si no es cierta la relación, entonce devolverá el resultado booleano de FALSE.

8900 > 23000
[1] FALSE

El anterior ejemplo con cadenas de texto tendría el siguiente resultado con el símbolo mayor que.

"zorro" > "burro"
[1] FALSE

Es cierta esta relación porque la cadena de texto “zorro” tiene una posición en el orden alfabético mayor que la cadena de texto “burro”, ya que se basa en la primera letra de ambas cadenas.

Igual que (==)

Este símbolo == evalúa si dos valores son exactamente iguales entre si, y estos valores pueden ser numéricos o cadenas de texto, devolviendo un resultado booleano de TRUE cuando los valores a ambos lados del símbolo son exactamente iguales o FALSE cuando no son exactamente iguales.

636 == 366
[1] FALSE

Las cadenas de texto evaluan el número de caracteres.

"zorro" == "burro"
[1] FALSE
"zorro" == "zorro"
[1] TRUE

No es igual que (! =)

El símbolo relacional de “no es igual que” combina un símbolo lógico (! negación) y un símbolo relacional (=).

Este símbolo compara si un valo no es igual al otro y devuelve un valor booleano de TRUE cuando el valor de la izquierda no es igual al de la derecha y si son iguales devuelve un valor booleano de FALSE.

3!=4
[1] TRUE
3!=3
[1] FALSE

Para cadenas de texto, el símbolo evalúa si ambos valores tienen el mismo número de caracteres.

"casa" != "caza"
[1] TRUE

Menor o igual que (<=)

El operador menor o igual que, evalúa si el valor de la izquierda es menor o exactamente igual al valor de la derecha del símbolo.

56<=56
[1] TRUE

El uso del símbolo menor que, no incluye dentro del intervalo de evaluación el número en cuestión, por lo tanto cuando se evalúa la relación anterior, esta relación es falsa.

56<56
[1] FALSE

Mayor o igual que (>=)

De manera similar al símbolo “menor o igual que”, el símbolo “mayor o igual que” evalúa si el valor de la izquierda es mayor o exactamente igual al valor de la derecha del símbolo.

56>=56
[1] TRUE

Reglas de prioridades para las operaciones

En el lenguaje de programación R las operaciones tienen prioridades al igual que en las matemáticas. Cuando se practica una serie de operaciones al mismo tiempo, algunas de ellas tienen prioridad sobre otras.

El orden de prioridades de las operaciones son las siguientes:

OrdenOperadores
1^
2* /
3+ -
4< > <= >= == !=
5!
6&
7|
8<-
5+3*6
[1] 23

Si se debe dar una prioridad distinta a las operaciones, se deben usar los parentesis así:

(5+3)*6
[1] 48

Ejercicios

Ejercicio 1

Crear un objeto que se llame m con valor de 850000 y un objeto que se llame c con valor de 450890. Hacerlo con todos los símbolos de asignación posibles.

Ejercicio 2

Multiplicar los dos objetos anteriores por 10 y dividirlos por 10000 y luego resolver lo siguiente:

$$m^2 + c^2/m+c$$

Ejercicio 3

Cambiar el orden de prioridades de los operadores de la anterior ecuación para que la respuesta sea 711.668.

Ejercicio 4

¿El valor del resultado del ejercicio 2 es mayor o igual que el del ejercicio 3? Probarlo a través del uso un operador lógico que compare las ecuaciones, no los resultados.

Ejercicio 5

Representar en código la siguiente afirmación y probar su valor booleano.

“Es cierto que m es mayor que c y que las priorización de operadores del ejercicio 3 es menor que la priorización de operadores del ejercicio 2.

Reto

Resolver la siguiente ecuación y que el resultado final sea: 16.94415

$$m^3 +c^2/85*96+m*c$$