Una lista en R es un objeto genérico que consta de una colección ordenada de objetos. Las listas son estructuras de datos unidimensionales y heterogéneas. La lista puede ser una lista de vectores, una lista de arrays, una lista de caracteres y una lista de funciones, etc.
Una lista es un vector pero con elementos de datos heterogéneos. Una lista en R se crea con el uso de la función list() . R permite acceder a elementos de una lista con el uso del valor de índice. En R, la indexación de una lista comienza con 1 en lugar de 0 como otros lenguajes de programación.
Crear una lista
Para crear una Lista en R necesitas usar la función llamada “lista()”. En otras palabras, una lista es un vector genérico que contiene otros objetos. Para ilustrar cómo se ve una lista, tomamos un ejemplo aquí. Queremos construir una lista de empleados con los detalles. Entonces, para esto, queremos atributos como la identificación, el nombre del empleado y la cantidad de empleados.
Ejemplo:
R
# R program to create a List # The first attributes is a numeric vector # containing the employee IDs which is created # using the command here empId = c(1, 2, 3, 4) # The second attribute is the employee name # which is created using this line of code here # which is the character vector empName = c("Debi", "Sandeep", "Subham", "Shiba") # The third attribute is the number of employees # which is a single numeric variable. numberOfEmp = 4 # We can combine all these three different # data types into a list # containing the details of employees # which can be done using a list command empList = list(empId, empName, numberOfEmp) print(empList)
Producción:
[[1]] [1] 1 2 3 4 [[2]] [1] "Debi" "Sandeep" "Subham" "Shiba" [[3]] [1] 4
Acceder a los componentes de una lista
Podemos acceder a los componentes de una lista de dos maneras.
- Acceder a los componentes por nombres: todos los componentes de una lista se pueden nombrar y podemos usar esos nombres para acceder a los componentes de la lista usando el comando dólar.
Ejemplo:
R
# R program to access # components of a list # Creating a list by naming all its components empId = c(1, 2, 3, 4) empName = c("Debi", "Sandeep", "Subham", "Shiba") numberOfEmp = 4 empList = list( "ID" = empId, "Names" = empName, "Total Staff" = numberOfEmp ) print(empList) # Accessing components by names cat("Accessing name components using $ command\n") print(empList$Names)
Producción:
$ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 Accessing name components using $ command [1] "Debi" "Sandeep" "Subham" "Shiba"
- Acceder a los componentes por índices: También podemos acceder a los componentes de la lista mediante índices. Para acceder a los componentes de nivel superior de una lista, debemos usar un operador de doble corte “ [[ ]] ”, que son dos corchetes y si queremos acceder a los componentes de nivel inferior o interno de una lista, debemos usar otro cuadrado corchete “ [ ] ” junto con el operador de doble corte “ [[ ]] “.
Ejemplo:
R
# R program to access # components of a list # Creating a list by naming all its components empId = c(1, 2, 3, 4) empName = c("Debi", "Sandeep", "Subham", "Shiba") numberOfEmp = 4 empList = list( "ID" = empId, "Names" = empName, "Total Staff" = numberOfEmp ) print(empList) # Accessing a top level components by indices cat("Accessing name components using indices\n") print(empList[[2]]) # Accessing a inner level components by indices cat("Accessing Sandeep from name using indices\n") print(empList[[2]][2]) # Accessing another inner level components by indices cat("Accessing 4 from ID using indices\n") print(empList[[1]][4])
Producción:
$ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 Accessing name components using indices [1] "Debi" "Sandeep" "Subham" "Shiba" Accessing Sandeep from name using indices [1] "Sandeep" Accessing 4 from ID using indices [1] 4
Modificar componentes de una lista
También se puede modificar una lista accediendo a los componentes y reemplazándolos por los que desee.
Ejemplo:
R
# R program to edit # components of a list # Creating a list by naming all its components empId = c(1, 2, 3, 4) empName = c("Debi", "Sandeep", "Subham", "Shiba") numberOfEmp = 4 empList = list( "ID" = empId, "Names" = empName, "Total Staff" = numberOfEmp ) cat("Before modifying the list\n") print(empList) # Modifying the top-level component empList$`Total Staff` = 5 # Modifying inner level component empList[[1]][5] = 5 empList[[2]][5] = "Kamala" cat("After modified the list\n") print(empList)
Producción:
Before modifying the list $ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 After modified the list $ID [1] 1 2 3 4 5 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" "Kamala" $`Total Staff` [1] 5
Concatenación de listas
Se pueden concatenar dos listas usando la función de concatenación. Entonces, cuando queremos concatenar dos listas, debemos usar el operador de concatenación.
Sintaxis:
list = c(list, list1)
list = la lista original
list1 = la nueva lista
Ejemplo:
R
# R program to edit # components of a list # Creating a list by naming all its components empId = c(1, 2, 3, 4) empName = c("Debi", "Sandeep", "Subham", "Shiba") numberOfEmp = 4 empList = list( "ID" = empId, "Names" = empName, "Total Staff" = numberOfEmp ) cat("Before concatenation of the new list\n") print(empList) # Creating another list empAge = c(34, 23, 18, 45) empAgeList = list( "Age" = empAge ) # Concatenation of list using concatenation operator empList = c(empList, empAgeList) cat("After concatenation of the new list\n") print(empList)
Producción:
Before concatenation of the new list $ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 After concatenation of the new list $ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 $Age [1] 34 23 18 45
Eliminación de componentes de una lista
Para eliminar componentes de una lista, en primer lugar, debemos acceder a esos componentes y luego insertar un signo negativo antes de esos componentes. Indica que tuvimos que borrar ese componente.
Ejemplo:
R
# R program to access # components of a list # Creating a list by naming all its components empId = c(1, 2, 3, 4) empName = c("Debi", "Sandeep", "Subham", "Shiba") numberOfEmp = 4 empList = list( "ID" = empId, "Names" = empName, "Total Staff" = numberOfEmp ) cat("Before deletion the list is\n") print(empList) # Deleting a top level components cat("After Deleting Total staff components\n") print(empList[-3]) # Deleting a inner level components cat("After Deleting sandeep from name\n") print(empList[[2]][-2])
Producción:
Before deletion the list is $ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" $`Total Staff` [1] 4 After Deleting Total staff components $ID [1] 1 2 3 4 $Names [1] "Debi" "Sandeep" "Subham" "Shiba" After Deleting sandeep from name [1] "Debi" "Subham" "Shiba"
fusionando lista
Podemos fusionar la lista colocando todas las listas en una sola lista.
R
# Create two lists. lst1 <- list(1,2,3) lst2 <- list("Sun","Mon","Tue") # Merge the two lists. new_list <- c(lst1,lst2) # Print the merged list. print(new_list)
Producción:
[[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] "Sun" [[5]] [1] "Mon" [[6]] [1] "Tue"
Conversión de lista a vector
Aquí vamos a convertir la lista en vector, para esto primero crearemos una lista y luego quitaremos la lista del vector.
R
# Create lists. lst <- list(1:5) print(lst) # Convert the lists to vectors. vec <- unlist(lst) print(vec)
Producción:
[[1]] [1] 1 2 3 4 5 [1] 1 2 3 4 5
R Lista a array
Crearemos arrays usando la función matrix() en la programación R. Otra función que se utilizará es la función unlist() para convertir las listas en un vector.
R
# Defining list lst1 <- list(list(1, 2, 3), list(4, 5, 6)) # Print list cat("The list is:\n") print(lst1) cat("Class:", class(lst1), "\n") # Convert list to matrix mat <- matrix(unlist(lst1), nrow = 2, byrow = TRUE) # Print matrix cat("\nAfter conversion to matrix:\n") print(mat) cat("Class:", class(mat), "\n")
Producción:
The list is: [[1]] [[1]][[1]] [1] 1 [[1]][[2]] [1] 2 [[1]][[3]] [1] 3 [[2]] [[2]][[1]] [1] 4 [[2]][[2]] [1] 5 [[2]][[3]] [1] 6 Class: list After conversion to matrix: [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 Class: matrix
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA