La es­tru­c­tu­ra de datos de una lista se puede encontrar en muchos lenguajes de pro­gra­ma­ción di­fe­re­n­tes. En R, las listas son es­pe­cia­l­me­n­te útiles cuando quieres resumir datos que pe­r­te­ne­cen a distintos tipos de datos en R.

¿Para qué se utilizan las listas R?

Las listas son una es­tru­c­tu­ra de datos versátil que permite almacenar elementos de di­fe­re­n­tes tipos de datos en R. Las listas son es­pe­cia­l­me­n­te adecuadas en entornos de pro­gra­ma­ción dinámica, cuando es necesario añadir y eliminar con fle­xi­bi­li­dad elementos de distintos tipos de datos. A di­fe­re­n­cia de los vectores R, no es im­po­r­ta­n­te qué tipo de datos contine una lista. Por ello, la capacidad de mezclar tipos de datos dentro de una lista es una de las pri­n­ci­pa­les ventajas de las listas R. Además, como es posible anidar listas unas dentro de otras como quieras, es posible mostrar cue­s­tio­nes complejas en el código fuente uti­li­za­n­do listas R.

Consejo

Si quieres que tus programas en R estén di­s­po­ni­bles online, apuesta por un proveedor de hosting con espacio ilimitado como IONOS. Te be­ne­fi­cia­rás de un mínimo de 50 GB de al­ma­ce­na­mie­n­to 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 ()” uti­li­za­n­do 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á­ci­l­me­n­te a elementos es­pe­cí­fi­cos 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 di­fe­re­n­tes 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 co­n­ve­r­ti­r­los en una lista, para lo que R también tiene una función.

vector &lt;- c(1,2,3,4)
list &lt;- as.list(vector)
R

Convertir listas en otras es­tru­c­tu­ras de datos

Aunque las listas R son una es­tru­c­tu­ra de datos versátil, puede que necesites otras es­tru­c­tu­ras de datos, como vectores o da­ta­fra­mes, para de­te­r­mi­na­dos fines. Si este es el caso, si­m­ple­me­n­te 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 tra­n­s­fe­re­n­cia y la convierte en un vector. La lista que pases a la función también puede ser mu­l­ti­di­me­n­sio­nal. A menudo, una llamada a “unlist()” es útil si quieres re­pre­se­n­tar je­ra­r­quías complejas en una forma vectorial simple.

list &lt;- list(1, 2, 3, 4)
vector &lt;- unlist(list)
R

Si una lista que contiene datos de distintos tipos de datos la co­n­vie­r­tes en un vector, puede pro­du­ci­r­se un co­m­po­r­ta­mie­n­to im­pre­vi­s­to, porque los vectores en R solo pueden almacenar datos del mismo tipo de datos por defecto. Por eso solo se re­co­mie­n­da 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 al­ma­ce­na­mie­n­to vectorial R al tipo de carácter de datos.

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

Cómo convertir listas R en da­ta­fra­mes

Los da­ta­fra­mes en R se utilizan, entre otras cosas, para la re­pre­se­n­ta­ción tabular de conjuntos de datos. Por eso las listas mu­l­ti­di­me­n­sio­na­les pueden co­n­ve­r­ti­r­se fá­ci­l­me­n­te en da­ta­fra­mes 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 pro­po­r­cio­na la función “data.frame()”, que espera la lista a convertir como parámetro de paso.

people &lt;- list(name=c("Max", "Mia", "Mika"), age=c(27, 32, 23))
table &lt;- 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á di­s­po­ni­ble, 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 &lt;- 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 in­de­xa­ción en R empieza en uno, no en cero. Si ya tienes ex­pe­rie­n­cia en pro­gra­ma­ción y no estás empezando y apre­n­die­n­do a programar, aquí pueden pro­du­ci­r­se errores con facilidad, ya que en la mayoría de los lenguajes de pro­gra­ma­ción la in­de­xa­ció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 uti­li­zar­se 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 co­m­bi­na­ció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 &lt;-list(name = "Max White", age = 27, hobbies = c("Programming, movies"))
print(person[["name"]])
print(person$name)
R

En ambos casos, la in­s­tru­c­ció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 de­te­r­mi­na­das ope­ra­cio­nes.

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 &lt;-list(1,2,3,4)
append(list, 5)
R
Nota

Si el elemento a insertar tiene un nombre, puedes si­m­ple­me­n­te es­pe­ci­fi­car­lo 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á­pi­da­me­n­te:

list &lt;-list(1,2,3,4)
list[[5]] &lt;-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 tra­n­s­fe­re­n­cia.

list &lt;- list(1,2,3,4)
print(length(list))
R

Co­n­ca­te­na­ció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 co­n­ca­te­na­da.

list1 &lt;- list(1,2,3,4)
list2 &lt;- list(5,6,7,8)
list_concatenate &lt;- 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 tra­n­s­fe­re­n­cia.

person &lt;-list(name = "Max White", age = 27, hobbies = c("Programming, movies"))
identifier &lt;- names(person)
R
Ir al menú principal