Listas

Una lista en R es un objeto que consiste en una colección de objetos ordenados conocidos como componentes. Los tipos de datos que podemos almacenar en una lista van desde simples caracteres, números, vectores, matrices, data frames, entre otros tipos de objetos.

Crear una Listas

Para crear una lista podemos utilizar la función list() y los argumentos serán los elementos que queremos incluir.

## Asignar un carácter
char <- "A"
## Asignar un número
num <- 23
## Crear un vector numérico
vec_num <- c(5,9,3,11,7)
## Crear un vector de caracteres
vec_char <- c("blanco","rojo","azul","rojo","blanco")
## Crear una matriz de numérica
mat_x <- matrix(1:9, nrow = 3, ncol = 3)
## Asignar un data frame
iris <- iris
## Crear la lista con todos los objetos antes creados utilizando la función list
all_obj <- list(char,num,vec_num,vec_char,mat_x,iris)
## Revisar la clase de objeto
class(all_obj)

Acceder a los componentes de una lista

Los componentes de las listas se encuentran en el orden que se colocaron y la forma de acceder a ellos es con doble corchete [[]].

## Revisamos la estructura de los datos
str(all_obj)
## Entramos al 4to componente de la lista que es un vector 
all_obj[[4]]
## Como es un vector podemos acceder al 3er elemento poniendo enseguida corchetes 
all_obj[[4]][3]
## Podemos asignar los componentes a variables 
df_iris <- all_obj[[6]]
## O podemos trabajar el data frame directamente de la lista  
all_obj[[6]]$Species

Cambiar los nombres de los componentes de una lista

Podemos cambiar los nombres de los componentes de la lista y de esa manera podremos acceder a ellos utilizando el operador $.

## Asignar nombres al la lista
names(all_obj) <- c("uno","dos","tres","cuatro","cinco","seis") 
## Podemos acceder al 3er compomente utilizando el operador $
all_obj$tres
## Podemos acceder al 5to elemto del vector
all_obj$tres[5]

Agregar, eliminar y cambiar nombres de los componentes en una lista

## Agregar un nuevo componente
vec_nuevo <- c(100,80,76,82,97)
all_obj[[7]] <- vec_nuevo
## Eliminar componente de una lista 
all_obj[[2]] <- NULL
## Cambiar el nombre de un componente de una lista 
names(all_obj)[6] <- "siete"