Zoznam v R programovanie je generický objekt pozostávajúci z usporiadanej kolekcie objektov. Zoznamy sú jednorozmerný , heterogénne dátové štruktúry.
Zoznam môže byť zoznamom vektory , zoznam matrík, zoznam znakov, zoznam o funkcie , a tak ďalej.
Zoznam je vektor, ale s heterogénnymi dátovými prvkami. Zoznam v R sa vytvorí pomocou funkcia list(). .
R umožňuje prístup k prvkom zoznamu R s použitím hodnoty indexu. V R indexovanie zoznamu začína 1 namiesto 0.
Vytvorenie zoznamu
Na vytvorenie zoznamu v R musíte použiť funkciu tzv zoznam() .
Inými slovami, zoznam je všeobecný vektor obsahujúci ďalšie objekty. Na ilustráciu toho, ako zoznam vyzerá, uvedieme príklad. Chceme vytvoriť zoznam zamestnancov s podrobnosťami. Preto potrebujeme atribúty ako ID, meno zamestnanca a počet zamestnancov.
Príklad:
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)> |
>
>Výkon
[[1]] [1] 1 2 3 4 [[2]] [1] 'Debi' 'Sandeep' 'Subham' 'Shiba' [[3]] [1] 4>
Komponenty zoznamu názvov
Komponenty názvového zoznamu uľahčujú prístup k nim.
vycentrovanie obrázka v css
Príklad:
R
# Creating a named list> my_named_list <->list>(name =>'Sudheer'>, age = 25, city =>'Delhi'>)> # Printing the named list> print>(my_named_list)> |
>
>Výkon
$name [1] 'Sudheer' $age [1] 25 $city [1] 'Delhi'>
Prístup ku komponentom zoznamu R
Ku komponentom zoznamu R môžeme pristupovať dvoma spôsobmi.
1. Prístup ku komponentom podľa mien:
Všetky komponenty zoznamu je možné pomenovať a tieto názvy môžeme použiť na prístup ku komponentom zoznamu R pomocou príkazu dollar.
Príklad:
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)> |
>
>Výkon
$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. Prístup ku komponentom podľa indexov:
Ku komponentom zoznamu R môžeme pristupovať aj pomocou indexov.
Na prístup k komponentom najvyššej úrovne zoznamu R musíme použiť operátor dvojitého rezu [[ ]] čo sú dve hranaté zátvorky a ak chceme získať prístup k zložkám nižšej alebo vnútornej úrovne zoznamu R, musíme použiť ďalšiu hranatú zátvorku [ ] spolu s operátorom dvojitého rezania [[ ]] .
Príklad:
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])> |
>
>Výkon
$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...>
Úprava komponentov zoznamu
Zoznam R je možné upraviť aj prístupom ku komponentom a ich nahradením tými, ktoré chcete.
Príklad:
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)> |
>
>Výkon
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' ...>
Reťazenie zoznamov
Dva zoznamy R je možné spojiť pomocou funkcie zreťazenia. Keď teda chceme spojiť dva zoznamy, musíme použiť operátor zreťazenia.
Syntax:
zoznam = c(zoznam, zoznam1)
zoznam = pôvodný zoznam
zoznam1 = nový zoznam
Príklad:
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)> |
>
porovnávanie reťazcov c#
>Výkon
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...>
Pridanie položky do zoznamu
Na pridanie položky na koniec zoznamu môžeme použiť funkciu 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> |
>
>Výkon
[1] 1 5 6 3 45 [1] 1 5 6 3>
Odstránenie komponentov zoznamu
Aby sme odstránili komponenty zoznamu R, musíme najprv získať prístup k týmto komponentom a potom pred tieto komponenty vložiť záporné znamienko. Znamená to, že sme museli daný komponent odstrániť.
Príklad:
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])> |
>
>Výkon
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...>
Zlučovací zoznam
Zoznam R môžeme zlúčiť umiestnením všetkých zoznamov do jedného zoznamu.
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)> |
>
>
Výkon:
[[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] 'Sun' [[5]] [1] 'Mon' [[6]] [1] 'Tue'>
Konverzia zoznamu na vektor
Tu prevedieme zoznam R na vektor, preto najprv vytvoríme zoznam a potom zoznam zrušíme do vektora.
R
# Create lists.> lst <->list>(1:5)> print>(lst)> # Convert the lists to vectors.> vec <->unlist>(lst)> print>(vec)> |
>
mapový java iterátor
>Výkon
[[1]] [1] 1 2 3 4 5 [1] 1 2 3 4 5>
R Zoznam do matice
V programovaní R vytvoríme matice pomocou funkcie matrix(). Ďalšou funkciou, ktorá sa použije, je funkcia unlist() na konverziu zoznamov na vektor.
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),>'
'>)> |
>
>Výkon
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,...>
V tomto článku sme sa zaoberali zoznamy v R, pokryli sme operácie so zoznamom, ako je vytváranie, pomenovanie, zlučovanie a odstraňovanie zoznamu v jazyku R. R zoznam je dôležitý koncept a nemal by sa preskakovať.
Dúfam, že ste sa v tomto článku dozvedeli o zoznamoch R a ich operáciách.
Skontrolujte tiež:
- R-Array
- R- Tuples
- R – Matrice