Datos Básicos en R
R proporciona cuatro tipos básicos de datos, también conocidos como vectores atómicos.
- logical
- numeric
- integer
- character
Logical
El tipo logical es la forma que tiene R para los datos binarios. Usados en test lógicos son conocidos como valores boleanos y toman los valores TRUE y FALSE. TRUE y FALSE pueden ser abreviados con las T y F en mayúsculas respectivamente. Sin embargo, recomendamos utilizar la versión completa de TRUE y FALSE.
3 < 4
## [1] TRUE
class(TRUE)
## [1] "logical"
class(T)
## [1] "logical"
Es posible construir condiciones lógicas utilizando los operadores &
, |
y !
(en lenguaje formal, , y respectivamente). La comparación de valores se lleva a cabo mediante ==
(es igual a) y !=
(es distinto de):
a <- 2
b <- 4
a == b # ¿es igual a b?
## [1] FALSE
a != b # ¿es a distindo de b?
## [1] TRUE
(a < 3) & (b < 5) # ¿es a menor que 3 y b menor que 3?
## [1] TRUE
(a < 1) | (b < 3) # ¿es a menor que 1 o b menor que 3?
## [1] FALSE
A continuación se muestran los operadores de comparación y lógicos en R:
?Comparision | |
---|---|
< | Menor que |
> | Mayor que |
== | Igual a |
<= | Menor que o igual a |
>= | Mayor que o igual a |
!= | Distinto a |
%in% | Pertenece a |
is.na() | Es el valor NA? |
!is.na() | Valores distintos a NA |
Tabla 1: Operadores de comparación
?base::Logic | |
---|---|
& | y (boleano) |
| | o (boleano) |
! | no |
any | Cualquiera verdadero |
all | Todos verdaderos |
Tabla 2: Operadores lógicos
Para mas información sobre la sintaxis de los operadores y su precedencia consultar la documentación R:
# Sintaxis de comparación
`?`(Comparison)
# Operadores lógicos
`?`(base::Logic)
Numeric
Para representar los números reales R proporciona el tipo numeric. Podemos realizar toda clase de operaciones con ellos como por ejemplo sumas, restas, multiplicaciones, divisiones y utilizarlos en el amplio catálogo de funciones matemáticas con las que cuenta R:
mi_altura_en_cm <- 180
mi_altura_en_cm
## [1] 180
mi_peso <- 79.5
mi_peso
## [1] 79.5
IMC <- mi_peso/mi_altura_en_cm^2
IMC
## [1] 0.002453704
round(mi_peso)
## [1] 80
Integer
Un tipo especial de numeric es el integer. Este es el modo de representar los números enteros en R. Para especificar que un número es entero, debemos añadir la letra L en mayúscula como sufijo.
mi_edad <- 40L
mi_edad
## [1] 40
En el ejemplo anterior, no podemos apreciar la diferencia entre el número real y el número entero.Sin embargo, con la función class()
podemos comprobar esta diferencia:
class(40)
## [1] "numeric"
class(40L)
## [1] "integer"
En lugar de preguntar por la clase de una variable mediante la función class()
, podemos utilizar las funciones is.*()
para comprobar si un objeto es realmente de un cierto tipo. Por ejemplo, para comprobar si una variable es numeric, usaremos la función is.numeric()
:
is.numeric(40)
## [1] TRUE
is.numeric(40L)
## [1] TRUE
Para comprobar si una variable es integer, usaremos la función is.integer()
:
is.integer(40)
## [1] FALSE
is.integer(40L)
## [1] TRUE
Como podemos ver en el ejemplo anterior los números reales son numeric, pero no todos los numeric son enteros.
Character
Cualquier dato alfanumérico (o cadenas, strings en inglés; todo aquello que no sea un número es una cadena) será interpretado por R como character. Por ejemplo:
"Ciencia de Datos con R"
## [1] "Ciencia de Datos con R"
Otros Tipos de Datos Básicos
Por último, cabe señalar que existen otros tipos de datos básicos en R, como el double que es un tipo numérico de doble precisión. El complex para números complejos y el raw para almacenar bytes.Sin embargo, no los trataremos en este curso puesto que raramente se utilizan en el análisis de datos
- Double (doble precisión)
- Complex (números complejos)
- Raw (almacenar bytes)