El tipo de objeto más simple en R es el vector atómico. La mayoría de estructuras de R se construyen a partir este objeto.
Un vector atómico es un vector de datos.
dado <- c(1,2,3,4,5,6)
is.vector(dado)
## [1] TRUE
Cada vector atómico guarda sus valor/es en un vector unidimensional, y cada vector atómico sólo puede guardar un tipo de información o datos.
R reconoce 6 tipos básicos de vectores atómicos:
Doubles Integers Characters Logicals Complex y Raw
Un vector double guarda números regulares.Los números pueden ser negativos o positivos, grandes o pequeños…etc.R guardará cualquier número que escribamos como double.
dado <- c(1,2,3,4,5,6)
dado
## [1] 1 2 3 4 5 6
typeof(dado)
## [1] "double"
Algunas funciones de R se refieren a doubles como numéricos.
Integers son aquellos números que pueden ser escritos sin un componente decimal.Dentro del análisis no utilizaremos el tipo integer muy a menudo porque podemos guardarlos como doubles o numéricos.
int <- c(1L,2L,3L,4L,5L,6L)
int
## [1] 1 2 3 4 5 6
typeof(int)
## [1] "integer"
La única diferentecia entre 4 y 4L es como R guarda nuestro número en la memoria del ordenador. Los tipo integers son son definidos de una manera más precisa. Por lo tanto, ¿Por que querríamos guardar nuestros datos como integer?
A veces una diferencia en precisión puede tener efectos sorprendentes. Nuestro ordenador asigna 64 bits de memoria para guardar cada “double” en R. Esto permite mucha precisión, pero algunos números no se puede expresar exactamente en 64 bits, el equivalente de una secuencia de 64 unos y cero.
Un vector de tipo character es un conjunto de pequeñas partes de texto.
text <- c("Hello","World")
text
## [1] "Hello" "World"
typeof(text)
## [1] "character"
typeof("Hello")
## [1] "character"
Los elementos individuales de un vector de tipo character son conocidos como strings.Hay que tener en cuenta que un strings, puede contener más que texto, como números…etc.
En este caso, estas strings podrían contener caracteres númericos, pero no los convierte en numéricos, simplemente son strings que contienen números.
Cualquier cualquier cosa que definamos entre las comillas (“”) R lo tratará comos un string.
Un vector de tipo lógico guarda TRUEs y FALSEs, la forma Booleana de R.Los vectores lógicos son muy útiles por ejemplo, a la hora de realizar comparaciones.
3 > 4
## [1] FALSE
logic <- c("TRUE","FALSE")
logic
## [1] "TRUE" "FALSE"
typeof(logic)
## [1] "character"
Doubles, integers, characters y logicals son los vectores atómicos más comunes de R, pero R también reconoce dos tipos más: complex y raw.
Los vectores complex guardan números complejos.
comp <- c(1 + 1i, 1 + 2i, 1 + 3i)
comp
## [1] 1+1i 1+2i 1+3i
typeof(comp)
## [1] "complex"
En cambio, los vectores raw guardan bytes de datos.
raw(3)
## [1] 00 00 00
typeof(raw(3))
## [1] "raw"