Cómo crear listas R

La estructura de datos de una lista se puede encontrar en muchos lenguajes de programación diferentes. En R, las listas son especialmente útiles cuando quieres resumir datos que pertenecen a distintos tipos de datos en R.

¿Para qué se utilizan las listas R?

Las listas son una estructura de datos versátil que permite almacenar elementos de diferentes tipos de datos en R. Las listas son especialmente adecuadas en entornos de programación dinámica, cuando es necesario añadir y eliminar con flexibilidad elementos de distintos tipos de datos. A diferencia de los vectores R, no es importante qué tipo de datos contine una lista. Por ello, la capacidad de mezclar tipos de datos dentro de una lista es una de las principales ventajas de las listas R. Además, como es posible anidar listas unas dentro de otras como quieras, es posible mostrar cuestiones complejas en el código fuente utilizando listas R.

Consejo

Si quieres que tus programas en R estén disponibles online, apuesta por un proveedor de hosting con espacio ilimitado como IONOS. Te beneficiarás de un mínimo de 50 GB de almacenamiento para tus proyectos.

Cómo crear listas en R

función list()

Para crear una lista simple en R, puedes utilizar la función “list ()” utilizando los elementos que quieras añadir a tu lista.

list <- list(1, TRUE, "Hello world!", c(1,2,3,4))
R

En este ejemplo de código, se ha creado una lista de cuatro valores. Como puedes ver, estos valores no tienen un tipo de datos idénticos y aun así pueden agruparse dentro de una lista.

También puedes crear una lista de elementos con nombre en R. Esto permite acceder fácilmente a elementos específicos de tu lista R.

person <-list(name = "Max White", age = 27, hobbies = c("Programming, movies"))
R

También puedes pasar otras listas como elementos de una lista, por ejemplo, para combinar diferentes listas en un registro:

people <- list(list(name = "Max White", age = 27, hobbies = c("Programming, movies")), list(name = "Mia Black", age = 32, hobbies = c("Theater, computer games")), list(name = "Mika Brown", age =23, hobbies = c("Sports, music")))
R

Crear listas a partir de vectores

También puedes crear listas a partir de vectores R. Para ello, hay que convertirlos en una lista, para lo que R también tiene una función.

vector <- c(1,2,3,4)
list <- as.list(vector)
R

Convertir listas en otras estructuras de datos

Aunque las listas R son una estructura de datos versátil, puede que necesites otras estructuras de datos, como vectores o dataframes, para determinados fines. Si este es el caso, simplemente convierte tu lista.

Cómo convertir listas R en vectores

Si quieres convertir tu lista en un vector R, utiliza la función “unlist()”, que toma una lista en R como parámetro de transferencia y la convierte en un vector. La lista que pases a la función también puede ser multidimensional. A menudo, una llamada a “unlist()” es útil si quieres representar jerarquías complejas en una forma vectorial simple.

list <- list(1, 2, 3, 4)
vector <- unlist(list)
R

Si una lista que contiene datos de distintos tipos de datos la conviertes en un vector, puede producirse un comportamiento imprevisto, porque los vectores en R solo pueden almacenar datos del mismo tipo de datos por defecto. Por eso solo se recomienda llamar a “unlist()” si los elementos de tu lista son del mismo tipo de datos.

El siguiente ejemplo de código convierte todos los valores de la lista de almacenamiento vectorial R al tipo de carácter de datos.

list <- list(1, TRUE, "Hello world!", c(1,2,3,4))
vector <- unlist(list)
R

Cómo convertir listas R en dataframes

Los dataframes en R se utilizan, entre otras cosas, para la representación tabular de conjuntos de datos. Por eso las listas multidimensionales pueden convertirse fácilmente en dataframes en R. No obstante, debes tener en cuenta que las listas deben tener el mismo número de elementos. Para convertir una lista en R en un dataframe, R proporciona la función “data.frame()”, que espera la lista a convertir como parámetro de paso.

people <- list(name=c("Max", "Mia", "Mika"), age=c(27, 32, 23))
table <- data.frame(people)
print(table)
R

El dataframe creado por el código anterior tiene el siguiente aspecto:

    name age
1  Max    27
2  Mia    32
3  Mika    23
R

Acceder a los elementos de las listas R

Para acceder a los elementos de tu lista, puedes utilizar el índice o, si está disponible, el nombre del elemento que quieras.

Acceso mediante el índice

Para acceder a los elementos de la lista, necesitas el operador R en el que insertas el índice o el nombre.

list <- list(1, TRUE, "Hello world!", c(1,2,3,4))
print(list[[2]])
R

Este código devuelve “TRUE” o el segundo elemento de la lista. Ten en cuenta que la indexación en R empieza en uno, no en cero. Si ya tienes experiencia en programación y no estás empezando y aprendiendo a programar, aquí pueden producirse errores con facilidad, ya que en la mayoría de los lenguajes de programación la indexación empieza desde cero.

Acceso mediante el nombre del elemento

Como ya se ha dicho, los elementos de una lista pueden nombrarse en R. Estos nombres pueden utilizarse para acceder a los elementos si es necesario. Hay dos formas distintas de acceder a los elementos por su nombre. Puedes utilizar corchetes dobles en combinación con el nombre del elemento como una cadena R o el signo del dólar seguido del nombre del elemento. Aquí tienes un ejemplo de código que te será de ayuda:

person <-list(name = "Max White", age = 27, hobbies = c("Programming, movies"))
print(person[["name"]])
print(person$name)
R

En ambos casos, la instrucción de impresión muestra “Max White” en la pantalla.

Funciones clave de las funciones de lista en R

Al trabajar con listas, hay una serie de funciones R útiles que te ayudarán a realizar determinadas operaciones.

append()

“append()” te permite añadir elementos al final de tu lista. La función asume la lista a la que se va a añadir el elemento como primer parámetro de paso y el elemento que se va a insertar como segundo parámetro.

list <-list(1,2,3,4)
append(list, 5)
R
Nota

Si el elemento a insertar tiene un nombre, puedes simplemente especificarlo en la llamada a la función.

La función de lista “append()” en R no es la única forma de añadir elementos a tu lista. A menudo, la anotación de índice con corchetes dobles, en la que utilizas un índice que aún no existe, funciona más rápidamente:

list <-list(1,2,3,4)
list[[5]] <-5
R

length()

Llamando al comando R “length()” puedes averiguar cuántos elementos contiene tu lista. La función asume la lista cuya longitud te interesa como parámetro de transferencia.

list <- list(1,2,3,4)
print(length(list))
R

Concatenación mediante c()

En R, puedes combinar dos listas en una. Para ello, puedes utilizar la función “c()”, que asume ambas listas como parámetro y devuelve una lista concatenada.

list1 <- list(1,2,3,4)
list2 <- list(5,6,7,8)
list_concatenate <- c(list1, list2)
R

names()

Si has creado una lista R con nombres, utiliza la función de lista R “names()” para mostrar los nombres de los objetos de tu lista. La función asume una lista como parámetro de transferencia.

person <-list(name = "Max White", age = 27, hobbies = c("Programming, movies"))
identifier <- names(person)
R