4.2 Vectores

En R se puede trabajar con distintas estructuras de datos, algunas son de una sola dimensión y otras permiten más, como indica el diagrama de abajo:

Hasta ahora nos hemos centrado en trabajar con data.frames, y hemos usado vectores atómicos sin profundizar, en esta sección se explican características de los vectores, y veremos que son la base de los data.frames.

En R hay dos tipos de vectores, esto es, estructuras de datos de una sola dimensión: los vectores atómicos y las listas.

  • Los vectores atómicos pueden ser de 6 tipos: lógico, entero, double, caracter, complejo y raw. Los dos últimos son poco comunes.

Vector atómico de tipo lógico:

Numérico (double):

Las operaciones básicas con vectores atómicos son componente a componente:

Y podemos crear secuencias como sigue:

Para calcular características de vectores atómicos usamos funciones:

Y ejemplo de vector atómico de tipo caracter y funciones:

  • Las listas, a diferencia de los vectores atómicos, pueden contener otras listas. Las listas son muy flexibles pues pueden almacenar objetos de cualquier tipo.

Las listas son vectores recursivos debido a que pueden almacenar otras listas.

Para construir subconjuntos a partir de listas usamos [] y [[]]. En el primer caso siempre obtenemos como resultado una lista:

Y en el caso de [[]] extraemos un componente de la lista, eliminando un nivel de la jerarquía de la lista.

¿Cómo se comparan y, y[1] y y[[1]]?

Propiedades

Todos los vectores (atómicos y listas) tienen las propiedades tipo y longitud, la función typeof() se usa para determinar el tipo,

y length() la longitud:

La flexibilidad de las listas las convierte en estructuras muy útiles y muy comunes, muchas funciones regresan resultados en forma de lista. Incluso podemos ver que un data.frame es una lista de vectores, donde todos los vectores son de la misma longitud.

Adicionalmente, los vectores pueden tener atributo de nombres, que puede usarse para indexar.