logo

R – Llistes

Una llista en Programació R és un objecte genèric que consisteix en una col·lecció ordenada d'objectes. Les llistes són unidimensional , heterogeni estructures de dades.

La llista pot ser una llista de vectors , una llista de matrius, una llista de caràcters, una llista de funcions , etcètera.



Una llista és un vector però amb elements de dades heterogenis. Es crea una llista en R amb l'ús de funció list(). .

R permet accedir a elements d'una llista R amb l'ús del valor de l'índex. A R, la indexació d'una llista comença amb 1 en lloc de 0.

Creació d'una llista

Per crear una llista en R cal utilitzar la funció anomenada llista () .



En altres paraules, una llista és un vector genèric que conté altres objectes. Per il·lustrar com es veu una llista, agafem un exemple aquí. Volem crear una llista d'empleats amb els detalls. Per això, volem atributs com ara l'identificador, el nom de l'empleat i el nombre d'empleats.

Exemple:

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)>

>

>

Sortida

[[1]] [1] 1 2 3 4 [[2]] [1] 'Debi' 'Sandeep' 'Subham' 'Shiba' [[3]] [1] 4>

Components de la llista de noms

Els components de la llista de noms fan que sigui més fàcil accedir-hi.

lògica de primer ordre

Exemple:

R




# Creating a named list> my_named_list <->list>(name =>'Sudheer'>, age = 25, city =>'Delhi'>)> # Printing the named list> print>(my_named_list)>

>

>

Sortida

$name [1] 'Sudheer' $age [1] 25 $city [1] 'Delhi'>

Accés als components de la llista R

Podem accedir als components d'una llista R de dues maneres.

1. Accediu als components per noms:

Tots els components d'una llista es poden anomenar i podem utilitzar aquests noms per accedir als components de la llista R mitjançant l'ordre dollar.

Exemple:

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 '>)> print>(empList$Names)>

>

>

Sortida

$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'>

2. Accés a components per índexs:

També podem accedir als components de la llista R mitjançant índexs.

Per accedir als components de primer nivell d'una llista R hem d'utilitzar un operador de doble tall [[ ]] que són dos claudàtors i si volem accedir als components de nivell inferior o interior d'una llista R hem d'utilitzar un altre claudàtor. [ ] juntament amb l'operador de doble tall [[ ]] .

Exemple:

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 '>)> print>(empList[[2]])> # Accessing a inner level components by indices> cat>(>'Accessing Sandeep from name using indices '>)> print>(empList[[2]][2])> # Accessing another inner level components by indices> cat>(>'Accessing 4 from ID using indices '>)> print>(empList[[1]][4])>

>

>

Sortida

$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 na...>

Modificació de components d'una llista

També es pot modificar una llista R accedint als components i substituint-los pels que vulgueu.

Exemple:

quadre de llista java

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 '>)> 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 '>)> print>(empList)>

>

>

Sortida

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' ...>

Concatenació de llistes

Es poden concatenar dues llistes R mitjançant la funció de concatenació. Per tant, quan volem concatenar dues llistes hem d'utilitzar l'operador de concatenació.

Sintaxi:

llista = c(llista, llista1)
llista = la llista original
llista1 = la llista nova

Exemple:

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 '>)> print>(empList)> # Creating another list> empAge =>c>(34, 23, 18, 45)> # Concatenation of list using concatenation operator> empList =>c>(empName, empAge)> cat>(>'After concatenation of the new list '>)> print>(empList)>

>

>

Sortida

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 [1] 'Debi' 'Sandeep' 'Subham' 'S...>

Afegeix un element a la llista

Per afegir un element al final de la llista, podem utilitzar la funció append().

R




# creating a list> my_numbers =>c>(1,5,6,3)> #adding number at the end of list> append>(my_numbers, 45)> #printing list> my_numbers>

>

>

Sortida

[1] 1 5 6 3 45 [1] 1 5 6 3>

Eliminació de components d'una llista

Per eliminar components d'una llista R, primer de tot, hem d'accedir a aquests components i després inserir un signe negatiu abans d'aquests components. Indica que hem hagut de suprimir aquest component.

Exemple:

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 '>)> print>(empList)> # Deleting a top level components> cat>(>'After Deleting Total staff components '>)> print>(empList[-3])> # Deleting a inner level components> cat>(>'After Deleting sandeep from name '>)> print>(empList[[2]][-2])>

>

python converteix bytes en cadena
>

Sortida

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' 'Sand...>

Llista de fusió

Podem combinar la llista R col·locant totes les llistes en una única llista.

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)>

>

>

Sortida:

[[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] 'Sun' [[5]] [1] 'Mon' [[6]] [1] 'Tue'>

Convertint llista a vector

Aquí convertirem la llista R a vector, per a això primer crearem una llista i després eliminarem la llista al vector.

R




# Create lists.> lst <->list>(1:5)> print>(lst)> # Convert the lists to vectors.> vec <->unlist>(lst)> print>(vec)>

>

>

Sortida

[[1]] [1] 1 2 3 4 5 [1] 1 2 3 4 5>

R Llista a matriu

Crearem matrius utilitzant la funció matrix() en programació R. Una altra funció que s'utilitzarà és la funció unlist() per convertir les llistes en un vector.

R




# Defining list> lst1 <->list>(>list>(1, 2, 3),> >list>(4, 5, 6))> # Print list> cat>(>'The list is: '>)> print>(lst1)> cat>(>'Class:'>,>class>(lst1),>' '>)> # Convert list to matrix> mat <->matrix>(>unlist>(lst1), nrow = 2, byrow =>TRUE>)> # Print matrix> cat>(>' After conversion to matrix: '>)> print>(mat)> cat>(>'Class:'>,>class>(mat),>' '>)>

>

>

Sortida

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,...>

En aquest article hem tractat Llistes en R, hem cobert operacions de llista com la creació, el nom, la fusió i la supressió d'una llista en llenguatge R. La llista R és un concepte important i no s'ha de saltar.

Espero que hàgiu après sobre les llistes R i les seves operacions en aquest article.

Comproveu també: