Variables, objetos atómicos y operadores
Variables¶
En programación, se alude a la variable como el nombre simbólico o identificador que se asocia a un dato que se almacena en la memoria principal del ordenador. A diferencia de una constante, cuyo valor no puede cambiar, el dato que almacena la variable puede, como el término indica, variar durante la ejecución del programa. El nombre puede incluir letras, números, puntos y guiones bajos, aunque debe empezar siempre con una letra o un punto. En este último caso, tras el punto no se permite seguir con un número. No puede contener ñ, tildes o símbolos que no sean del alfabeto.
Hay que tener en cuenta que el nombre no debe de ser ambiguo, sino lo más claro y descriptivo posible, de forma que no conduzca a confusión y sea más fácil de comprender tanto por nosotros mismos como por otras personas.
Generar una variable
El procedimiento general para crear una variable sería el siguiente: escribes el nombre de tu variable, incluyes el operador de asignación <-
, y continúas con el dato que quieras incluir, el cual determina el tipo de operaciones a las que puede someterse la variable. De este modo, quedaría tal que así:
nombre_variable <- dato
.
Si bien, es cierto que sería posible asignar variables de otras formas como las siguientes:
dato -> nombre_variable
,
assign("nombres_variable", dato)
,
nombre_variable = dato
.
Objetos atómicos¶
Todo lo que conforma R se considera un objeto. Partiendo de los más simples, los mínimos elementos de las variables se conocen como atómicos y pueden componer estructuras de datos (vectores, factores, matrices y listas), que serían objetos recursivos y también pueden componer una variable. A continuación, se muestran los distintos tipos de objetos atómicos en los que se basa R, los cuales pueden comprobarse aplicando las funciones mode()
, class(nombre_variable)
o is.
.
- Lógico: también conocido como booleano, representa valores de lógica binaria, es decir, valores 0 y 1 como falso y verdadero, respectivamente, que se pueden indicar como
FALSE
,F
,TRUE
oT
.
Ejemplos
1 2 |
|
- Numérico: representa valores numerales tanto enteros como reales. Existe otros tipos de datos como el denominado
integer
, el cual es más estricto ya que se refiere únicamente a los valores enteros, y el tipo de datocomplex
, que se relaciona con los números complejos cuya forma es b+2i . Generalmente se emplean datosnumeric
y pueden proceder de operaciones.
Ejemplos
1 2 3 4 |
|
- Carácter: dígito individual que puede ser representado por un símbolo del lenguaje natural, lo que incluye letras, números, espacios en blanco o signos, y que tienen que indicarse entre comillas. Estos pueden presentarse como una secuencia ordenada de forma que compongan una cadena de caracteres. Para crear una cadena se utilizan comillas simples o dobles sin diferencias en su comportamiento. Si bien, las comillas dobles es la opción más extendida aunque, si la cadena contiene comillas como elementos, se emplean las comillas simples.
Ejemplos
1 2 |
|
- Nulo: se da con valores indefinidos que suelen importarse o proceden de una operación. También podría entenderse como una variable vacía. Se definen con la palabra reservada
NULL
.
Ejemplo
1 |
|
¿Qué valor contienen los siguientes ejemplos de variable?
1 2 3 4 5 6 7 |
|
Respuesta
-
La variable variable1 contiene un valor infinito, el cual se muestra como
Inf
. Este valor es resultado de cálculos donde se divide entre cero o se obtiene un número muy grande. -
variable2 no representa un valor numérico, lo que se indica como
NaN
(Not a Number). Esto resulta de operaciones con indeterminaciones. TantoInf
comoNaN
son variables de tipo numérico. -
En el caso de variable3, la variable contiene un valor no disponible, mostrado como
NA
. Este tipo de objeto se considera como lógico por defecto, a menos que se coercionen a otro tipo mediante funciones como la que se emplea en la variable4 o semejantes, comoas.character()
oas.numeric()
. -
Las variables variable5, variable6 y variable7 contienen elementos de tipo carácter, numérico y lógico, respectivamente.
Operadores¶
Lógicos¶
Los operadores lógicos |
y &
describen relaciones lógicas que se pueden entender como "uno u otro es TRUE
" y "ambos son TRUE
", respectivamente. Por tanto, la relación |
devuelve TRUE
si alguno de los datos es TRUE
, y la relación &
solo da la salida TRUE
si ambos datos son TRUE
.
Ejemplos
1 2 3 |
|
Aritméticos¶
Los operadores aritméticos, como su nombre indica, se emplean para operaciones aritméticas, es decir, cálculos matemáticos, por lo que son permitidos para datos de tipo entero, numérico y complejo.
Operador | Comparación |
---|---|
+ | Suma |
- | Resta |
* | Multiplicación |
/ | División |
^ | Potencia |
%% | División entera |
R funciona como una calculadora, donde se emplean los operadores aritméticos mencionados y una gran cantidad de funciones matemáticas como la raíz cuadrada, sqrt()
, el logaritmo, log()
, el exponente, exp()
o el seno, sin()
, entre otras.
Relacionales¶
Los operadores relacionales realizan comparaciones y siempre devuelven como resultado TRUE
o FALSE
. A diferencia de los operadores aritméticos, se puede emplear en cadenas de caracteres, pero toma en cuenta el primer carácter de cada dato y compara por orden alfabético.
Operador | Comparación |
---|---|
< | Menor que |
<= | Menor o igual que |
> | Mayor que |
>= | Mayor o igual que |
== | Exactamente igual que |
!= | No es igual que |
Jerarquía de operadores¶
Tanto los operadores aritméticos como los relacionales y los lógicos están jerarquizados, de modo que se efectúen preferentemente ciertas operaciones, dejando en último lugar el operador de asignación de varible.
Orden | Operador |
---|---|
1 | ^ |
2 | * / |
3 | + - |
4 | Relacionales |
5 | & |
6 | | |
7 | <- |
Ejemplos
1 2 3 |
|
Ejercicios complementarios¶
Cree un script llamado Kelvin_a_Celsius.R que transforme grados Kelvin en grados Celsius (centígrados).
Respuesta
1 2 3 4 |
|
Cree un script llamado pesetas_a_euros.R que calcule la equivalencia de pesetas en euros.
Respuesta
1 2 3 4 |
|
Cree un script llamado segundos.R que desglose una cantidad de segundos en días, horas y minutos equivalentes.
Respuesta
1 2 3 4 5 6 |
|
Enlaces de interés
-
R para Análisis Científicos Reproducibles. Software Carpentry.
-
Material del curso Informática aplicada a la Bioquímica, Manuel Jesús Marín Jiménez, Universidad de Córdoba.